This is a common problem with worn mechanical linkage between the lever arm on the starter and the gear drive. The gear is supposed to be fully engaged in the flywheel before the push button on top of the starter is contacted by the linkage. A worn pivot pin on the lever and/or wear on the fork that moves the gear drive can allow the motor to begin turning before the gear is fully meshed.
Unfortunately, wear on the flywheel ring gear is also a possibility. Remove the starter, turn the engine by hand, and inspect the ring gear all the way around. Some people recommend flipping the ring gear over (requires a BFH and a torch) to get a fresh bite on the gear for the drive to engage.
Jerry