Drive by comment: if anything, I suggest putting an upper bound on the delay (e.g. 1 minute). The most likely reason initialization will fail is that the user's Internet is down. Ideally, you'd like to initialize as soon as possible after it comes back up. 

I think an http request every minute would be fine.