Looking at the fiddle, it's an interesting case of differing interpretations of the spec.
The spec itself is somewhat .... uh.... brief; I can see room for both interpretations.
The spec says:
ch unit
Equal to the advance measure of the "0" (ZERO, U+0030) glyph found in the font used to render it.
So 'ch' is the width of an "0". The question that isn't answered in the spec is whether that should include the spacing around the character:
Should it be consistent with the 'em' unit (which is the width of the 'm', including font spacing)?
Or should it be consistent with 'ex', which is the height of the 'x' character (without any spacing considerations; ie just the actual glyph)?
I think I know which one I'd pick if I was writing a browser, but as I say I can see an argument for both cases given the lack of clarity in the spec.
I guess in the face of that kind of ambiguity, and with two clearly different implementations between browsers, the only sensible option is not to use the 'ch' unit at all until there is better consensus.
Thankfully 'em' and 'ex' are available and consistent, and also provide font-relative sizing. I guess under the circumstances, the best advice I can give is to stick with them.
The only way I can think of to work around it would be to have a custom font with a default of zero letter spacing. My thought process is that this should remove the ambiguity between the interpretations, but would mess up other aspects of your font rendering somewhat. I guess you could then set the letter spacing manually, but you'd still probably have other issues. Not a solution I'd reall suggest trying, to be honest.