The patch addresses:
> If it means to block SIGALRM during timers, that doesn't always
> happen because timers run within timers. The end of an inner timer
> would unblock SIGALRM and the outer timer would finish with the
> sigmask unblocked.
but I don't see it address:
> But what happens if the next timer happens to be soon, and Emacs
> receives SIGALRM inbetween set_alarm and unblock_timers?
That one sounds more likely to cause a timer to stop.