You have covered the obvious points, so you have to try some more farfetched things.
The positive cable to the starter may be undersized or corroded.
The ignition timing may be advanced too far.
Finally, I have an Olds 455 which had the same issue. It turned out the mechanical advance mechanism in the distributor was rusty/sticky and sticking in the "advanced" position when I switched the engine off.
When hot, it stuck as "advanced" and make for hard starting, but after some time and cooling down, the arms slowly retracted and retarded the ignition timing, allowing for normal starting.
Make sure the mechanism if moving freely and the springs are in place, in the mechanism.