suppressFailedReexecution seems to always be called after hasAttemptOnHost.  Did you consider consolidating these into a single function called hasRecentAttemptOnHost?