I'm not convinced that the rad stat has a proper PI control. I have a couple of units I'm playing with and I find if I set the desired temperature above/below the read temperature I don't see any integration. I need to set up max scanner and charts but looking at the raw numbers and half watching what happens while watching TV :-), it seems to me as though the valve has a dead band where nothing happens and then it is linear. And maybe there is some averaging too. If there was integration I would expect to see, if say desired temp was 1C below, that the valve would eventually ramp to 0% which it doesn't.
But, on a different tack, the first thing I would suggest is balancing radiators when you have over/undershoot problems. If the radiator is oversize you could also look at limiting the max valve setting although that is similar to balancing I would think. In fact maybe the system could learn and balance itself with the max valve setting.
For my house I'm planning to adjust the boiler open loop. That is I've worked out the room loses and I will be measuring outside temperature so I can calculated the expected loses for each room. That gives me how much power I want from my boiler. I can program the boiler output temperature and read the flow/read (via opentherm I reckon) or I can fix this and control power via on/off periods. Then I can examine the valve positions and the actual temperatures and adjust the boiler to suit. Well that's the plan. I don't think the rad valves react quick enough which I suspect is to save batteries.
My current off the shelf PI stat has an adjustable cycle which it says set to 1min for gas, 15min for oil. Oil loses a bit on fire-up so you want long burns, hence on 15min cycle, 50% would be a 7.5min burn. I've found that a bit lumpy so I run a 10min cycle AFAIR. I suspect that a 5-10min cycle is as long as you want, and that's only when you're in the control band, say +/-1C of desired.