The integrated thermal diode in current CPUs is probably the best measurement, as long as you calibrate it. Anything you put on outside the CPU itself isn't going to be measuring the CPU core anyway.
If you put ANY sensor between the heatsink and the CPU, you will disrupt the contact between the heatsink and the CPU heatplate or top of the core, which will result in higher temperatures (and the heatsink would then be tilted so NONE of it is in good contact). Even if you cut out a notch in the heatsink, you end up with that section of the heatsink no longer touching the core. In either case, you also have the thermal probe not just measuring the CPU, but the heatsink (unless the probe is insulated extremely well on one side) so you get like an average of the two.
Sensors underneath the CPU in the socket can also be calibrated, and are at least as effective as if you had one on the other side that you could move around.
Anything to the side of the core or heatplate of course is exposed to air, and not really in good contact with the core or the areas where heat is being generated.
Anything more than casual accuracy is pretty much a waste of your money. What's important is that the system is stable, and not exceedingly hot. If you reach the point that a difference in measuring accuracy of half a degree is important, you're already risking major failure.
If you just want something that you can measure the temperature to check for hotspots (which doesn't require accuracy, just consistency with itself between readings), there are plenty of thermal probes with long leads to a display.