I like this approch the best. Though you will want some logic on System Started to recreate the timer in the event of an openHAB restart.
Sounds like a good reason to use the JSR223 rules engine. This gets asked often enough perhaps it is worth adding it as an example to the wiki.