* manual: make it completely async
Restoring the timers on startup cannot use track_point_in_time,
because the restoring code runs from the async_added_to_hass
method. Rewrite everything to run in the event loop instead
of using threaded wrappers, this way the code can be reused in
async_added_to_hass.
* manual_mqtt: replace async function with @callback
* manual_mqtt: make it completely async
Restoring the timers on startup cannot use track_point_in_time,
because the restoring code runs from the async_added_to_hass
method. Rewrite everything to run in the event loop instead
of using threaded wrappers, this way the code can be reused in
async_added_to_hass when state restore is added.
Co-authored-by: Jan Bouwhuis <jbouwh@users.noreply.github.com>