new way to calculate sleep time from failed attempt: new strategy AttemptWaitStrategy is based on exception class and user-defined function to calculate sleep time from exception occurred;