trying to set a home position. on a contentious run servo

Sorry, I didn't see you already have a switch.

I think you need something like this pseudo code

switchVal = digitalRead(homePin);

while (switchVal == HIGH) { // assumes LOW when contacts close
    myservo.write(slow servo speed value);
    switchVal = digitalRead(homePin);
}
myservo.write(stop value);

This code assumes you don't care which side of the homePosition the servo is already at - it might go 355 degrees when 5 deg backwards would have been enough.

If very accurate location is important I think I would use a "switch" that was strong enough to halt the motion until the servo is stopped. That's the way mine works.

...R