not really wrong, it just normal issues you get when you have display rounding...
theres a few things going on in this 'area' which confuse things:
- floating point numbers represented as 32bits are never entirely accurate
- there is a conversion from 'midi note' to frequency (see the pitch+/- that tells you its using pitch not frequency natively)
- display accuracy/rounding
- a dials 'micro' increments, e.g. whats the smallest amount we can shift it by?
anyway... so yes these could be avoided (or alleviated) using a custom clock object with integer times.
as for how you can fix...
so to change the cycle of a clock, gets into the territory of clock multipliers/combining multiple signals.
but thats not easy to get accurate.
what might work is to try an LFO that has a frequency input, say use a lfo/sine lin, this may not have the same inaccuracies, as it avoid the last 3 of the problems above.
It would be interesting to see if its helps
of course its worth noting 0.6ms is not very long.... the sample rate is 48000 with 16 samples , so that about which is about 0.3ms ! so the drift is not very big... about 1 second in 30 minutes.
this only becomes a problem if you are trying to sync to something external but if thats the case you always send sync signal, as no clock is entirely accurate. this sync then resets the clocks, to avoid the natural drift between different clocks.
(times relatives, so doesnt really matter if 120bpm is really 120.04 as long as all devices agree it :))