Check the starter ground. When they come loose there is not sufficient power to push the gear all the way to the fly wheel. I learned this from experience. If the little, black, thin ground wire from the starter to the engine block is at all loose you can get this symptom. Additionally, this is not uncommon because this connection is difficult to get to and is sometimes not completly snugged tight, out of frustration. Yes, sadly, I know what I am talking about.