Allow maxFailures to be less than 1 - if so we allow infinite failures and never trigger an error callback