millis() overflow when? (UNO+22)

Of course the Arduino CPU clock is only good to about ten minutes a day accuracy

10 / (24*60) * 100 = 0.69%

The internal oscillator is more accurate than that (after calibrating). If you have an Arduino with a processor clock that is performing that poorly you need to return it as defective.