new retry logic

timeout is longer depending on how many times retried already