Thanks so much for the help, Mark!
I'm much closer, which is good. While my code and tools are different my registers agree with yours:

(the 0x81 is different than your 0x8A, but that's the MCG_C3 register, which is a ref clock trim setting, so I don't think that is the difference).
In the course of looking at this I noticed that my cursors of the scope were referencing the wrong channel (oops!:smileyconfused:), so my measurement is 404kHz which is only a factor of 1 off from what you have. That's workable, but it still bothers me a bit that I'm not understanding something here.
My MCG_S register is 0x10 and the MCG_SC reg is 0x02, though I don't see anything there that would affect that.
The only other thing that I can think of that would affect that is the SIM_CLKDIV1 register:

Mine shows a n OUTDIV1 setting of 0, which means the core clock is equal to the MCGOUTCLK divided by 1.
I'll keep poking around at it - I don't think I've pulled the code down to pretty much the bare minimum so I don't think there's an interrupt continually going off or something like that....
Is there some other register which may affect the core clock?
Thanks again so much for your time!
Rich