Sounds like either the starter or its solenoid are getting heat-soaked. You could try tying piece of thermal barrier stuff around it, or replace the solenoid, before replacing the starter. The obvious stuff like good connections, adequate grounds, etc should be checked first.