Millis (); won't work properly

I admittedly haven't tried it on an Arduino here; if time permits tomorrow I'll give it a try.

In the meantime, how is your switch wired? I noticed that you look for a HIGH to indicate the button is pressed but also use INPUT_PULLUP. I switched the code to look for a low-to-high transition but that still may not work right if the switch it wired weirdly.