Alright, some results. This works:
output.print(((float) distance)/100);
output.write('\n');
It was just the \n that was missing. I like this solution since it's very easy to read and modify the scale factor. And by using float you can have none-10 factors if you want. It does add about 1400 bytes to the program size, but that still only brings it up to 29% of total so it doesn't really matter.
Not sure though how many decimals are actually printed, since I don't have access to a ttl level serial monitor. I read something about two decimals being default in Arduino. For CNC use it is entirely possible some users would want 3 decimals.
About the machine lag, I did some more testing. if I change just one of the axis to use g0 while the other axis uses g1 I can't provoke it to start lagging. Which doesn't make sense, if I jog an axis that uses the g1 command it should still behave the same. Maybe it's just so sporadic that I can't figure it out, sometimes I can't make it lag and sometimes it's barely usable. Are G0 and G1 moves planned differently in any way? Maybe this theory is completely out of the question.
Either way it seems this is the end of my contribution, because after re-uploading the code so many times I eventually broke the micro-USB port off my arduino, traces and all. So no more updates on my pendant. 😞