big ole defensive try/catch for timeout watcher

not sure why we thought scheduled tasks with a period were
reliable in the face of rare exceptions, but they aren't. At least
they don't cancel everything on the thread/ executor like Timers
do though.