Fix hold-retry-release logic

Previously, on holding a suite with a submitted or a running task that
can retry, if the task fails while the suite is on hold, it will go into
retrying immediately instead of being held with the rest of the suite.
This change fixes the problem.

Fix #355.
Somehow I've never seen the ```timeout``` command before - useful!