Use a mainloop timer to wake up from hibernation.

In lieu of legacy/trac#25950 (moved), we can do a much simpler version: when we go dormant, schedule a timer to wake up at a later time.