Retry timeouts a few times with exponential back off

Currently, jobs are buried and never able to run again after 1 timeout.

This PR gives jobs a few extra opportunities to run, with an exponential delay that starts at 1 hour.

Rather than importing `math` and casting the timeout count to float etc, I'd just do `time.Duration(r*r) * time.Hour` like in [broker.go](https://github.com/99designs/cmdstalk/blob/5843dc3ba2954a111a5d98fce3420af9edcd7c35/broker/broker.go#L229-L231).