The approach I documented in my irrigation tutorials uses openHAB Timers. With this approach, the easiest thing to do is on a restart to just cancel everything and make sure all the valves are off. But you could persist the start and stop times of each of the valves and determine how long each one was on for today and restart the irrigation as desired, subtracting the time that already ran when OH restarts/the script is reloaded. You can see more at Design Pattern: Cascading Timers.
Another approach I could see is to store data in the Items metadata. If you are using managed Items (not .items files) the metadata will persist between restarts of OH. You store the start time in metadata on the valve and when OH comes back online trigger a rule to look at this metadata and it will see when the valve turned ON and turn off/recreate the timers as appropriate.
The GateKeeper DP implementation I have in Python is actually a good approach for scheduling a cascading timer type pattern like this. You can send it a function to execute and how long to wait before the next function passed to it can run (I’ve not yet written the JavaScript version but it’s not that complicated). That library could be enhanced perhaps to store the stuff that is queued up perhaps in an Item or Item’s metadata. That would centralize much of the recovery after an OH restart into one library. It might need to be simplified so instead of a function you’d only pass an Item name and command, but that should be fine for this type of application.
I’m a little ambivalent about creating yet another way to manage timing of events into openHAB core. We already have sleeps, timers, cron/time triggered rules, and expire. At the same time, having a way to preserve a timed event across openHAB restarts would be very useful. But I’d rather see one or more of these existing approaches (maybe expire or timers) enhanced over the creation of a whole new way. But this is coming strictly from trying to help users here on the forum as opposed to forming an opinion on technical merit. From that perspective, adding another way to control timing is going to only make it harder for these users who already have a challenge understanding and using what OH already provides.