### Summary

Starting with ansible-core-2.11.0, the `ssh` module operates with a `retry` setting of `3`.

This has undesired impact when using a `sudo` password and making a typo in the password: the module would make 4 connection attempts, attempting a sudo in each connection attempt.

On hosts that report failed sudo attempts via email - this generates 4 emails per Ansible run per host - 4x increase from behaviour with previous version.

I have tracked this to commit 935528e22e5, which changed how the ssh module gets its settings - using `get_option` instead of the ConfigurationManager.

I have worked around this by explicitly setting `retries` on the first task in the playbook - but this is just a workaround.

I hope there would still be a way to set retries for the SSH module (or make it not retry on failed privilege escalation).

Cheers,
Vlad

### Issue Type

Bug Report

### Component Name

ssh

### Ansible Version

```console
ansible [core 2.11.2]
  config file = /Users/vlad/reannz/code/ansible-playbooks/ansible.cfg
  configured module search path = ['/Users/vlad/reannz/code/ansible-playbooks/library']
  ansible python module location = /usr/local/Cellar/ansible/4.1.0/libexec/lib/python3.9/site-packages/ansible
  ansible collection location = /Users/vlad/.ansible/collections:/opt/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.9.5 (default, May  4 2021, 03:29:30) [Clang 11.0.0 (clang-1100.0.33.17)]
  jinja version = 3.0.1
  libyaml = True
```


### Configuration

```console
DEFAULT_BECOME(/Users/vlad/reannz/code/ansible-playbooks/ansible.cfg) = True
DEFAULT_BECOME_ASK_PASS(/Users/vlad/reannz/code/ansible-playbooks/ansible.cfg) = False
DEFAULT_BECOME_METHOD(/Users/vlad/reannz/code/ansible-playbooks/ansible.cfg) = sudo
DEFAULT_BECOME_USER(/Users/vlad/reannz/code/ansible-playbooks/ansible.cfg) = root
DEFAULT_HOST_LIST(/Users/vlad/reannz/code/ansible-playbooks/ansible.cfg) = ['/Users/vlad/reannz/code/ansible-playbooks/environment/production']
```


### OS / Environment

Controller: OSX Mojave 10.14.6
Target: Ubuntu 20.04

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```ini
# ansible.cfg
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
```
Run:
```
ansible -u $USER -m command -a 'id' 'target-host' -K
```


### Expected Results

I expect sudo attempted only once.

### Actual Results

```console
Sudo is attempted 4 times (as per `/var/log/auth.log` on target host)
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
except AnsibleError as e:
            return dict(failed=True, msg=wrap_var(to_text(e, nonstring='simplerepr')), _ansible_no_log=self._play_context.no_log)
        except Exception as e:
            return dict(failed=True, msg='Unexpected failure during module execution.', exception=to_text(traceback.format_exc()),
                        stdout='', _ansible_no_log=self._play_context.no_log)
        finally:
            try:
                self._connection.close()
            except AttributeError:
                pass
            except Exception as e:
                display.debug(u"error closing connection: %s" % to_text(e))
    def _get_loop_items(self):
        '''
        Loads a lookup plugin to handle the with_* portion of a task (if specified),
        and returns the items result.
        '''
        
        self._job_vars['ansible_search_path'] = self._task.get_search_path()
        
        if self._loader.get_basedir() not in self._job_vars['ansible_search_path']:
            self._job_vars['ansible_search_path'].append(self._loader.get_basedir())
        templar = Templar(loader=self._loader, variables=self._job_vars)
        items = None
        loop_cache = self._job_vars.get('_ansible_loop_cache')
        if loop_cache is not None:
            
            
            items = loop_cache
        elif self._task.loop_with: