Timing issue with button press

Hi JML

It seems after i hit the button, i'll have to wait 3 secs (which is what TIMER_MS is set to) before another button press is recognized. Then it runs through each case for 3 seconds before returning to the beginning and waits for another button press. However, the button has to be pressed, wait for 3 secs, and then another press will finally be recognized.

Button is wired ground on one side and other side to PIN2 on arduino.