Bad starter. It's got a a "dead spot" on the armature and when it lines up at the right position it won't engage. Mine was doing it and a new (used off of ebay for $30) fixed it.

Whatever you do don't go trying to adjust the timing, it'll screw it all up. The timing is electronic and can't be adjusted.