Generic thermostat: support max cycle duration and cooldown

I am looking at making a thermostat for my heating.
I’ve found that many heaters, for example convection heaters are not supposed to run for extended periods of time, and while they each usually have their own thermostats to prevent this I would much prefer to account for this in my home assistant setup.

Because of this, I think it would be good if the generic thermostat could respect a “max cycle duration”-parameter as well as some parameter specifying a required cooldown period, for example a “min cooldown per cycle”.
I’m imagining something like:

In the current  "cycle": 
    if there has not been a continuous cooldown period of X minutes and the "cycle" length is greater than the max amount: 
        trigger a cooldown period
        reset "cycle"

I would certainly be interested in helping out with implementation, but I am not at all sure about the design, for example on how this behaviour could play nice with conflicting values of, for example min_cycle_duration, keep_alive and min_temp.

Thankful for any feedback or thoughts about this!

If you don’t think this is appropriate for the generic thermostat and have other tips on ways to implement this I would love to hear that too.