Double check the CPU fan.
I went through all sorts of things with a hot CPU. The heatsink measured 120+ degrees versus about 80 normal on identical machines. They all ran Vector Linux, even, so it wasn't related to system running load.
The heatsink and fan were clean, and the fan was spinning and looked just fine. The very first thing I checked had been that the fan would spin freely with no power applied, so had ruled out gummy, dried out lubrication. It was a ball-bearing type and wasn't growling or vibrating abnormally, and since it was spinning fast, I figured the problem was elsewhere.
I changed, the CPU, measured voltages and clock waveforms, even swapped memory, all to no avail. I'd come to the theory that the motherboard had some sick CPU interface chips that, altough working, had a failure that either was loading the CPU's output drivers, or making the CPU sink too much current on inputs. I'd seen this before in digital circuitry where rather than swinging from 0 to nominal operating voltage, some signals were 'stuck' at mid-voltage but could still swing enough to allow operation.
Quite by accident my finger brushed the fan while doing a measurement, and the fan stopped with virtually no resistance at all. What I didn't realize was it was actually running slow and not moving enough air.
Apparently the fan had a bad drive coil, or bad coil driver which made it spin slower than it should and with almost zero torque. Replacing it solved the problem and the heatsink temp fell right in line with the rest of the boxes.