No longer using timer signals. Instead, time how long
everything takes, and sleep for the remaining time left
until the next update.
Brings us down to a consistent > 1% CPU load on fedora VM,
have yet to test on target.