You need to look at PID control loops and take into account the stored heat in the radiator .
It’s not an easy control loop to get to work and the best solution is to also vary the water temperature in the radiators if you want anything like optimal control .
Another issue with on/off type control the actual temperature you get in the room depends on the outside temperature , which is effectively the load ( on a cold day the rate of rise of temp in the room is slow so it doesn’t overshoot as much as on a warm day when the rate of rise is fast ). For this reason people tend to up the temperature of their room stat on cold or windy days !! ( as the average room temp is lower).
As you say , the difficulty is caused by stored heat in the radiator and some sort of model ( as in some of the new smart thermostats) might help