Updating because there was a new reply. On my car the heater core was full of some sort of silty scale. Flushed it with fresh water, then radiator cleaner and it worked much better. I might have had to do this more than once, I think the problem recurred (it was a few months ago and I don't remember perfectly). Heater output is comfortable, though possibly not as hot as it should be - so it's possible the core isn't fully clean and needs replacing to work perfectly. It's unclear what caused (or is causing) the scale, presumably something before my ownership of the car. The whole system has been flushed and refilled with the right coolant since I bought the car so hopefully there isn't more scale developing.