Reading a variable set in an ISR, or using millis() for time within while loop?

Hard to see what value the timer interrupt brings to this application.