A wrapper around calls to a dependency that stops calling it after repeated failures, fails fast, then cautiously probes for recovery.