Run an if-else once

Is this the code you tested because there is nothing there that delays for 60 seconds. I agree wih Mark, it does sound like a debounce problem. Your button is "bouncing" which cycles from high to low a few times before settling. During that time the code catches a low state and goes to the else portion of your code.