I know it sounds stupid but one thing to check is if the starter is securely bolted to the engine. I had a similar problem with a Ford Bronco and it would finally just spin. When I put it on the lift I found the starter lying on top of the frame. Two minutes later it was good as new.
With marine starters, if they are easy to reach as on straight inboards, I take them off the first of every season, lube them a bit and cycle them a few times prior to reinstalling. I would not even think of doing this on many stern drives I've seen.
Good luck.