millis(), how to detect overflow (after +/-50 days)?

When using subtraction on unsigned integers. the subtraction will automatically handle it.

millis() - startTime >= interval Lets try it using byte to make the math easier

10 - 245 >= 20 Millis() has just rolled over startTime was before rollover

if you start at 10 count back to 0 then 255 on down you will see that the answer is exactly 20.

subtraction will always give the right answer when using unsigned integers hence no problems with rollover.