My dad took a convertible top motor from a T-bird and mounted it on his John Deere 110 to raise and lower the snowblower and mower deck. The way he has it wired it that it only moves when he is holding the momentary switch that gives it power. This gives him infinite places to stop throughout the motion of travel on the motor. I know, WAY to much torque for this application, but a simple idea.
My thought is that is the length of travel on the shifting arm is (for the sake of discussion) 1/2", then I would use a slow moving solenoid powered from 12V with a degree of travel of 3/8". This means that if the gears were not meshed when activated, it would simply stop at it full length of travel (or as far as it could travel) and hold pressure until the vehicle rolled a little bit for everything to "click" in. You could control the amount of pressure by moving the solenoid forward or backward slightly to increase or decrease pressure.
At least this is my simplistic view of the idea!