Fix hang in Watchdog

Interrupt processing after `unlock` may allow s_ticks to advance twice,
causing the loop test to miss when `s_ticks == stop`.  Instead, use
signed comparison of remaining ticks.  Retains behavior of always
yielding at least once.
Merge pull request #277 from SlashDevin/Watchdog-hang

Fix hang in Watchdog