102 degrees is not hot enough to blow the rad. cap so you must have either air introduced to the cooling system by, for example, a head gasket failure, or poor circulation of the coolant causing localised overheating and boiling of the coolant inside the engine, while the ECU sender is seeing slow moving coolant at a reasonable temperature.
My money is on the latter. At 90 there is so much airflow through the rad. that the engine should get as much cooling as it needs IF it can circulate coolant fast enough through the rad. The fact that the heater makes a difference in this case is key, because it probably promotes just a little more coolant circulation through the engine. Ordinarily a rad. moving through the air at 90 would lose way more heat than a little heater matrix.
Problem is, if the circulation is poor and it's not improved by flushing it may be a head off job to investigate. If there are dodgy deposits visible in the engine it does start to look like there's something clogging the water jacket up.
Kevin