Serial.print messing with Timer Interrupts

No. It relies on skipping 6 cycles by setting TCNT2 to 6. However this implies that TCNT2 would be 0 which is not necessarily the case. It never misses any of the 1ms ticks. It is only sometimes some cycles to late. As I said: this is very subtle and it took me ~4 weeks to figure this one out.

To be more precise: the bug is:

TCNT2 = MsTimer2::tcnt2;

Actually the underlying issue is to use "normal" mode instead of CTC mode.