could be that the starter motor itself is getting stuck. as a simple test try pressing the starter button and keep the button pressed in and give the starter motor a few knocks with a hammer and see if it frees up. if it does then you'll have to take the motor out and give it a clean and you might get away with that