rework the timeout and polling of the bluebox api

this reduces the load we put on their api, and also uses the Fog timeout code, which improves the readability