I had the same problem, and found an excellent thread on the NCRS board. I realize if you are not an NCRS member it does not help you, but the thrust of the article was about the spring inside the solenoid. Aftermarket or springs that come in the rebuild kits are a different lengths than what came original. When they heat up the tension strength of spring changes and does not allow the starter to engage. Heat sheilds may work but from what I read you would only be masking the problem. The real solution is to get a standard not metric spring length for your old GM starter.
I happened to have an old starter at the house so I took the spring out of the solenoid and put it in the faulty starter and that cured my problem. Additionally, I sanded paint off some of the contacts. Also make sure that the contact point from the armeture to the solenoid is good.
Somebody that knows more about this hopefully will chime in. I have only done this once.