Upon rechecking, I actually don't have to hit the button wait 3 secs and then hit it again.
If i just wait 3 seconds after all the case statements are complete, it will recognize the button again. I feel that the '#define TIMER-MS 3000' is coming into play here with the button function too but haven't been able to figure it out yet