Found a solution, neither of these fonts define themselves as mono-spaced,
the solution is to force this.
This can be done in fonts.conf or through the font specifier.
Cascadia Code-13:spacing=90 (dual spacing)
JetBrains Mono-13:spacing=100 (mono spacing)
Modifying the fonts.conf is meant to work too, although I couldn't get it working. See link.
Per the upstream Fira Code instructions, you have to install the Fira Code Symbol font to use the mechanism being used here. The Fira Code Symbol font is a separate font that has the Fira Code ligatures, but puts them as regular characters in the font so that Emacs can access them. (You may note that the original Fira Code example referred to "Fira Code ...
I'm not too sure about how to apply these settings, but your desired settings seem to be at odds with your picture. The one on the left (your preferred one?) has RGB antialiasing and none-low hinting, whereas on the right you have grayscale antialiasing and much higher hinting (zoom the picture until you see the individual pixels to see what I mean).
As far as I can see, the problem is that enriched-face-ans does not consider inherited face attributes when it queries attributes with function face-attribute.
It should call face-attribute with the INHERIT argument set to t.
I assume that failing to do so is a bug in enriched-face-ans.
Maybe, you should file a bug report to email@example.com.