I like the idea of the "15 minutes" -- would be nice if the rest of the numbers in the code could be derived from something like "wait no more than 15 minutes with 30s in between retries") -- those are the key parameters and would make it easier to understand the success / failure modes.