My darkroom can be as cool as 13 degrees rather than the optimum 20, but I don't find it to be a big problem. Ways I work around it:
1. Preheat, using a space heater as you mentioned. It's a small room and if I keep the door closed, I can get it to 20 pretty quickly. Generally by the time I've gotten organized and cleaned up the detritus from the last usage (tanks in the drying rack, prints hanging up to dry, etc.) it's up to temperature.
2. Use concentrated developers. Putting in small amounts of cool developers into large amounts of properly-heated water makes no noticeable change to temperature. For example, with PMK I put 3 mL of stock solutions into a litre of water. If the water is 20 when I start (run hot and cold together to get the right temperature), I probably drop the temperature to 19.99997.
3. If you're using developers that are less concentrated, work around it. For example, let's say you have stock D-76 or XTOL at 16 degrees, and you use it 1:1. Mix it with water at 24 degrees (4 degrees above what you want, because your stock solution is 4 degrees below what you want and you are mixing equal parts) and you get 1:1 solution at 20 degrees. It's slightly trickier to do at higher dilutions, but you can still do it.
The bigger problem is during printing, where only option 1 really works. However, extending development time works if the temperature is reasonable. If the darkroom is, say, 18 degrees, an extended development will serve the same purpose as having 20-degree developer.