Fix hang in Watchdog
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.

rrobinet/Cosa,dansut/Cosa,mikaelpatel/Cosa,dansut/Cosa,jeditekunum/Cosa,rrobinet/Cosa,jeditekunum/Cosa,mikaelpatel/Cosa,kc9jud/Cosa,dansut/Cosa,kc9jud/Cosa,mikaelpatel/Cosa,jeditekunum/Cosa,rrobinet/Cosa,rrobinet/Cosa,dansut/Cosa,jeditekunum/Cosa,mikaelpatel/Cosa,kc9jud/Cosa,kc9jud/Cosa