Another area to check would be the battery cables & terminals, as well as the rest of the (smaller) wires and terminals in the starting circuit.
Corrosion can build up here, and sometimes is hidden by the insulation on the wire.
I had a similar problem on my truck (350 Chev) which turned out to be the main "hot" terminal on the starter itself. Cleaned everything up, that cured the problem.
This may or may not be the solution in your situation, but it's worth checking out.