I will have to do some hard thinking to get @robin2 idea going but I think he is right that is the only way to get both going at the same time.
It is really pretty simple. On each pass through loop(), check the switch and step the servo one position.
The only "hard" part is figuring out the next position to step to. And, a little thought reveals that that is not even hard. The servo is moving some direction. If that direction is positive, and the servo is not at the limit, increment the position and apply to the servo.
If the direction is positive, and the servo is at the limit, change the direction to negative, decrement the position, and apply to the servo.
If the direction is negative, and the servo is not at the limit, decrement the position and apply to the servo.
If the direction is negative, and the servo is at the limit, change the direction to positive, increment the position, and apply to the servo.
You can see that there are only 4 things to keep track of (and two of them are constants) - the direction, the current position, the upper limit (constant) and the lower limit (also constant).
Give this a try. It's not that hard. Six if or else statements altogether.
(Yes, it can be simplified, but this is the easiest to understand).