Removed speculative cancel_timer assertion about it being an interval timer.  The writeback trips the assertion.
Made the signal_timer_t handle zero-length timeouts by immediately pulsing.