When resetting the timer, only reset it if we would be decreasing
the time remaining, never increase it. Also, use > 0 checks instead of
checking for debug mode to be consistent with the rest of the code, and
so that the next commit works properly.
The funky checks are because in debug mode (as of next commit) it will
be possible to enable certain subsets of timers, and these checks are
needed to prevent things from breaking when some subsets are enabled but
others are not.