Fix signal handling

This seems to have made exiting signal work.
Simplify code by using a timer bus

This uses a single timer for all the system needs and simplifies the
code by not requiring to repeat all the at-exit-signal cleanups
everywhere.

The wires depending on this timer bus are expected to just initiate an
action, if they are active the shutdown will not exit, if they are
inactive the process will exit as usual.
Slightly cleaner timer bus shutdown

When the timer bus is closed all the sleepers are awakened and are
expected to read the returned -1 and exit immediately.