LED Fade Loop Inturruption with Push Button

Instead of using a for loop why not let the loop() function do what its name implies ?

Decrement a variable each time round loop() and then you can read the input frequently. For extra points, do away with the delay() to make the program even more responsive to inputs

See Using millis() for timing. A beginners guide, Several things at the same time and look at the BlinkWithoutDelay example in the IDE.