[fix] dont change opts object when ignoring a backoff attempt when one is in process
[fix] for the sake of determinism use an internal timer and clear it when the timeout executes