Millis() in 2 var: 2nd var is smaller than first?

you should use a button library to make your code easier. It will handle bouncing for you.

As things need to be asynchronous (non blocking) you might benefit from studying state machines. Here is a small introduction to the topic: Yet another Finite State Machine introduction