millis() and micros() rollover limits for elapsed-time measurement on AVR boards
Goal is to measure the execution time of a periodic workload on a continuously running Arduino sketch and use the measurement to decide whether optimization is warranted. The timing base is millis() as an unsigned 32-bit counter with ~49.7 day rollover, and micros() with ~71.6 minute rollover. Elapsed time is intended to be computed with unsigned subtraction