Policy that determines wait time between health check invocations

Changes the default policy to exponential backoff rather than fixed 60
seconds
The run call cancels the future, if it exists. That still may result in duplicate invocations, but this is for testing.