Redirect Timer0 to own function and continue with original Arduino Timer0 ISR

WizenedEE:
The interrupt itself only fires when the timer overflows. Remember, the millis interrupt fires every millisecond (1kHz)

This implies there are two interrupts. The Timer 0 interrupt fires every 1.024 mS, since it is prescaled by 64, and overflows every 256 counts. (62.5 nS * 64 * 256 = 1.024 mS).

Inside the interrupt it adds 1 to a counter (ie. once every 1.024 mS) plus takes into account the fractional amount (which would be 24 uS). Periodically (every 42 times) it adds this fractional amount back in. So your millis() counter gradually is out by 24 uS units until the extra bit gets added back in.