add in exponential wait time for TaskState.TASK_FAILED cases, the defaul...

Added in exponential incremental retry wait time for TaskState.TASK_FAILED cases.
The default wait time is starting at 10 secs.
Use `scala.concurrent.duration.Deadline` instead of `java.util.Date`.