What if the button is pressed during the one minute blinking? Do you want to ignore it? Reset the one minute from that time? Do something else (eg: increase the time by 10 seconds)?
Further to PaulS' advice, there is one small complication. You have a pencil, a watch, a pad of paper, and you are a goldfish with a 50 microsecond attention span. The whole world consists of the question "what am I supposed to be doing right now?", which you re-ask yourself every 50 microsecond.
In this case, you can look to see if someone is whacking you with the stick (you see everything in really slow motion, the stick actually takes several cycles to complete a whack), you can look at the time, you can read your pad of paper, and from those three things you have to decide what to do: you can turn the LED on or off (or leave it as it is), and you can write down a reminder note, eg "I most recently turned the LED on when the time was 54321, and I last got whacked with a stick back when the time was 32109".
boolean flashing = false;
unsigned long startFlashingMs;
unsigned long startCurrentFlashMs;
set up the input and output pins
// step 1 - look at button, start flashing if it's down, stop flashing if its up AND we have been flashing for a minute
// step 2 - if we are currently flashing, then if it's been 500ms since we started this flash, then reverse
// the state of the LED, making a note of the current time (or just add 500ms)
// step 1 and 2 can be done in any order