Sure, that will help even in the event of a disorderly shutdown (power failure and no UPS).
Anyone using this approach should be aware that there’s a (slim) chance of some timers failing to be restored. Here’s the corner-case: if the time_pattern is every 5 minutes and a timer starts during that interval (i.e. between two polls), immediately followed by a power-failure, its information won’t be stored (and so it will not get restored upon startup). Reducing the time_pattern’s period (say, to 1 minute) will help.
My host machine is protected by a UPS, so I lean towards the event-based approach (homeassistant_stop).