Gardner Timing Recovery for Repeated Symbols
Your Gardner Loop would properly "Flywheel" in the absence of symbol transitions. So it would slowly drift off of synchronization, but would not spiral out of control as you describe. This is ideal for a control system with "missing updates"; to have the contributions for those updates with no additional information to contribute 0 to the accumulated error, resulting in a "flywheel" behavior. There are other detectors used to discriminate the control term in loops (such as a digital phase-frequency detector used in PLL implementations (such as this device: Maxim Phase Frequency Detector) that produce maximum error in the absence of transitions, and these systems would move off of lock at the maximum speed possible - this would be bad for timing recovery where we expect to have missing bits! 

See my picture below demonstrating the operation of the Gardner Loop. In the absence of transitions, the Timing Error Detector would be zero on average as the Late and Early samples would be the same, and therefore $Late - Early = 0$.



Here is another post I made earlier with more information on the Gardner Loop:

Location of Matched Filter