Mike,
According to this description below the spring may not be the issue since it appears the higher ring gear speed as the engine starts provides the force to push the pinion back. Then the spring may take it the rest of the way. I realize that the description applies to older designs which pre-date the modern overrunning clutch but some of the principles may still apply.
What helps my race car starter engage and release properly is grease on the pinion and the ring gear. Make sure (if you can) that the starter is properly aligned with the ring gear (good luck with that).
An intermediate development between the Bendix drive developed in the 1930s and the overrunning-clutch designs introduced in the 1960s was the Bendix Folo-Thru drive. The standard Bendix drive would disengage from the ring gear as soon as the engine fired, even if it did not continue to run. The Folo-Thru drive contains a latching mechanism and a set of flyweights in the body of the drive unit. When the starter motor begins turning and the drive unit is forced forward on the helical shaft by inertia, it is latched into the engaged position. Only once the drive unit is spun at a speed higher than that attained by the starter motor itself (i.e., it is backdriven by the running engine) will the flyweights pull radially outward, releasing the latch and permitting the overdriven drive unit to be spun out of engagement. In this manner, unwanted starter disengagement is avoided before a successful engine start.
http://en.wikipedia.org/wiki/Starter_motor
Dick