Thank you both for your replies!
I have looked at BlinkWithoutDelay, and I sort of understand it.
One big problem with it is (which I failed to mention before), is that I need the light pulses to be 50ms long. So not 1000ms on and then 1000ms off, back and forth. I need 50ms on, then 950ms off, repeating (which I've managed to do with Delay). This is much easier as a musician to follow. Is that what you meant, Bulldog, by two time fences?
Also, Bulldog, in your pseudocode, you have the blinking starting before "void loop". How do you do that?
I guess to figure this out I need to do:
1) Get the BlinkWithoutDelay to restart it's cycle when the button is pressed
2) Get the BlinkWithoutDelay to run with these two time windows (LED on time at 50ms and LED off time at 950ms)