Need some help with millis() and debouncing. Driving me nuts!

My requirements for the sketch are pretty simple.
Push a button: start the sketch to turn the servo once every 24 hours.

Not sure if a servo modified for continuation can be commanded to move at such a slow rate, but if it can be it will commanded by performing a servo write value just a count or two higher or lower then the stop or neutral value of 1500usec. So either:
myServo.writeMicroseconds(1501); // Counter clockwise as slow as possible
or
myServo.writeMicroseconds(1499); // Clockwise as slow as possible

Push button again at any time: stop the sketch.

Stopping a continious rotation servo is as simple as issuing a servo write command to it's neutral value so:
myServo.writeMicroseconds(1500); // Servo stop value
By the way you can never cause a sketch to just stop running code, but you can force it to execute a 'do nothing' loop forever until you reset or power down then up the board, which will emulate the same action as a program stop.

Literally, that's it.

Note that the actual neutral value your servo requires for a full stop may have to be tweaked a little up or down from the nominal 1500usec value to account for it's specific calibration, and this would of course cause the need to adjust the minimum speed CW or CCW by an equal amount
Lefty