Stopping a Servo Sweep.

The problem is your for loops. There is nothing in there that interrupts them, and they block the execution of the loop function. Your loops will keep running until they reach their end.

You need to completely restructure your code in order to simultaneously monitor the button and move the servos. I'd recommend a simple state machine (Gammon Forum : Electronics : Microprocessors : State machines) with two states: SWEEP and STOP. Use a couple of global variables to keep track of the servo position, and use BlinkWithoutDelay style coding to control the servos without blocking. Use the button press to transition between the two states.

It's stupid that so many of the Arduino examples use delay when it's a horrible way to program. It works only for the trivial examples they give, but as soon as you need to start doing something more complicated, you need to ditch the delays and work with a different paradigm.