Support both zero and timebomb mode

- Zero mode runs conditional until it succeeds (returns 0)
- Timebomb mode runs conditional until it's been up for at least
  the specified number of seconds (defaulting to 5).
- Signal handling has been overhauled, but is still incorrect (I think)