Nothing wrong with the gears.
Here is my setup:
Arduino Uno R3
Breadboard
9V battery
HS-311 Servo (modded)
I have the 9v on the breadboard power rail
I have earth over to earth to the servo
I have earth over to earth on the arduino uno
I have live over to live on the servo
I have signal from the servo on the breadboard to pin 9 on the arduino
I load up the standard sweep sketch and I get 6 full revolutions of the servo, it stops for a split second and starts again in the same direction. And that repeats.
Now I am totally baffled.