As noted,the thermostat is what keeps the engine coolant at the desired temperature--I use only 195 degree thermostats,that is what GM has used since 1968...here in MA you need all the heat you can get--some frigid days I put a piece of cardboard in front of the radiator--I have a vinyl grille cover that came with my diesel suburban you can put over the grille to get more heat in the most frigid weather..
Heater core is likely clogging up with deposits,if all else checks out good --if anyone ever put radiator sealer in the radiator it is a good bet most of it went in the heater core and stayed there..often a good flushing with a garden hose with decent pressure will get rid of most of the restriction and improve the heaters output..you do risk making it leak though,especially if you have too much pressure,so only flush it with a hose nozzle that lets you control the pressure and flow..