Better watcher timeout behaviour

Implements some kind of exponential timeout