Added timeout non-zero verification - fixes #776

The pubsub listener was making the `bstop` call wait forever, because it was never listening in the first place: the 0 second `Duration` timeout was being triggered, rather than being considered as a "no timeout" value.
So it *is* in fact a leftover from debugging ;)
I think we should solve this at a lower level. This just makes the code less readable for no obvious gain (apart from making timer debugging slightly easier when using this specific Redis functionality, which should be a highly uncommon case). There could for example be a special per-task default timer that is used by `sleep`.