I'm not sure this logic really makes sense.

In the original version, `0` indicates "fire now", and `nil` indicates nothing is waiting.

In this version, these two cases are ambiguous.