Win95/Win98/WinME do not send HLT commands to the CPU when idling. Win2000 does. Using CPUIdle or Rain in WinME should pull the CPU temperature number down to the Win2000 reading. You can get CPUIdle or Rain from softseek.com or download.com. Choose one of the two (I recommend Rain) and put it in your StartUp entry in Windows.
As far as which reading is correct, 10C lower than 30C is 20C which is probably a little above ambient. This is unlikely - a CPU will always be 10-20C hotter than ambient. I get my reading from the BIOS and then match with whichever program seems closest to that value. MBM4 seems to give me realistic readings.
<< Do processors take a few weeks to wear in? >>
No. More use only wears them out, they don't get "broken in" like a pair of sneakers or a car, they just get worn out.