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

Have you done the arithmetic using unsigned longs?

Provided you don't try to measure times greater than 49 days, the rollover is not a problem, and even if you do want longer times, it is very simply handled.