Sorry, but I think rb_divert_reserved_fd seems a racy fix.  I think the
correct fix is to allow single-threaded Ruby to process signals without
timer thread; I will try to make it happen now.