I've given it a bit more thought, and have come to the conclusion that sampling has to be a lot more intelligent. Simply sampling once every N ticks won't work, since this might perfectly sync up with when the machine happens to be working, and thus not correctly identifying a bottleneck.
I have a few ideas for how to get this to work, without the mod taking as much CPU power as the rest of the game, and without sacrificing accuracy. But until this works, the mod will be a CPU hog.