#### SUMMARY
Ansible task with become !root fails with py3 (py2 is fine).

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
become

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.7
  config file = /home/danj/git/git.chown.me/ansible/ansible.cfg
  configured module search path = ['/home/danj/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/danj/venv/ansible/lib/python3.8/site-packages/ansible
  executable location = /home/danj/venv/ansible/bin/ansible
  python version = 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```
ANSIBLE_PIPELINING(/home/danj/git/git.chown.me/ansible/ansible.cfg) = True
CACHE_PLUGIN(/home/danj/git/git.chown.me/ansible/ansible.cfg) = memory
DEFAULT_ACTION_PLUGIN_PATH(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/usr/local/share/ansible_plugins/action_plugins']
DEFAULT_CALLBACK_PLUGIN_PATH(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/usr/local/share/ansible_plugins/callback_plugins']
DEFAULT_CONNECTION_PLUGIN_PATH(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/usr/local/share/ansible_plugins/connection_plugins']
DEFAULT_FILTER_PLUGIN_PATH(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/usr/local/share/ansible_plugins/filter_plugins']
DEFAULT_GATHERING(/home/danj/git/git.chown.me/ansible/ansible.cfg) = smart
DEFAULT_HOST_LIST(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/home/danj/git/git.chown.me/ansible/hosts']
DEFAULT_LOOKUP_PLUGIN_PATH(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/usr/local/share/ansible_plugins/lookup_plugins']
DEFAULT_MANAGED_STR(/home/danj/git/git.chown.me/ansible/ansible.cfg) = Ansible managed: {file} modified on %Y-%m-%d %H:%M:%S by {uid} on {host}
DEFAULT_TIMEOUT(/home/danj/git/git.chown.me/ansible/ansible.cfg) = 10
DEFAULT_TRANSPORT(/home/danj/git/git.chown.me/ansible/ansible.cfg) = smart
DEFAULT_VARS_PLUGIN_PATH(/home/danj/git/git.chown.me/ansible/ansible.cfg) = ['/usr/local/share/ansible_plugins/vars_plugins']
RETRY_FILES_ENABLED(/home/danj/git/git.chown.me/ansible/ansible.cfg) = False
```

##### OS / ENVIRONMENT
Ansible "client" is ubuntu 20.04, target is OpenBSD -current.

##### STEPS TO REPRODUCE
```yaml
- name: add anoncvs.fr.obsd.org to the known hosts                                 
  become_user: danj                                                                
  become: "yes"                                                                    
  become_method: sudo                                                              
  lineinfile:                                                                      
    dest: /home/danj/.ssh/known_hosts                                              
    line: "anoncvs.fr.openbsd.org,145.238.209.46 ecdsa-sha2-nistp256 [...]"
    create: "yes"                                                                  
  tags:                                                                            
    - cvs                                                                          
    - tmpcvs
```
Most stuff is done as root as the priviledge user is required but sometimes I use another user with become/sudo and it fails, whatever the module is (lineinfile like here, or shell etc). The problem is with become.

##### EXPECTED RESULTS
It works with python2 (i.e. the target has ansible_python_interpreter=/usr/local/bin/python2)
```
TASK [cvs : add anoncvs.fr.obsd.org to the known hosts] ***************************************************************************************************************************************
task path: /home/danj/git/git.chown.me/ansible/roles/cvs/tasks/main.yml:62
Using module file /home/danj/venv/ansible/lib/python3.8/site-packages/ansible/modules/files/lineinfile.py
Pipelining is enabled.
<virtie-root> ESTABLISH SSH CONNECTION FOR USER: root
<virtie-root> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/home/danj/.ansible/cp/1f07b313ca virtie-root '/bin/sh -c '"'"'sudo -H -S -n  -u danj /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-myjuvnfghfjvpjggsaqefxmykdpxfqqb ; /usr/local/bin/python2'"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<virtie-root> (0, b'\n{"msg": "", "diff": [{"after": "removed for privacy reason", "src": null, "seuser": null, "delimiter": null, "mode": null, "firstmatch": false, "attributes": null, "backup": false}}}\n', b'')
ok: [virtie-root] => {
    "backup": "",
    "changed": false,
    "diff": [
        {
            "after": "[removed for privacy reasons]",
            "after_header": "/home/danj/.ssh/known_hosts (content)",
            "before": "[removed for privacy reasons]",
            "before_header": "/home/danj/.ssh/known_hosts (content)"
        },
        {
            "after_header": "/home/danj/.ssh/known_hosts (file attributes)",
            "before_header": "/home/danj/.ssh/known_hosts (file attributes)"
        }
    ],
    "invocation": {
        "module_args": {
            "attributes": null,
            "backrefs": false,
            "backup": false,
            "content": null,
            "create": true,
            "delimiter": null,
            "dest": "/home/danj/.ssh/known_hosts",
            "directory_mode": null,
            "firstmatch": false,
            "follow": false,
            "force": null,
            "group": null,
            "insertafter": null,
            "insertbefore": null,
            "line": "anoncvs.fr.openbsd.org,145.238.209.46 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIT93hmb9QFu8r8ZxbGk6xXKptPdFwg2xM0ClkQWqKuSXBPPDo6FSOdtUlfzJwaaWBnp+L+6SKJJZqLjepbfNyQ=",
            "mode": null,
            "owner": null,
            "path": "/home/danj/.ssh/known_hosts",
            "regexp": null,
            "remote_src": null,
            "selevel": null,
            "serole": null,
            "setype": null,
            "seuser": null,
            "src": null,
            "state": "present",
            "unsafe_writes": null,
            "validate": null
        }
    },
    "msg": ""
}
```

##### ACTUAL RESULTS
With -vvv: (if I add more verbosity, it doesn't pretty print the stack trace so it's as readable as you can expect, i.e. it's not)
```
TASK [cvs : add anoncvs.fr.obsd.org to the known hosts] ***************************************************************************************************************************************
task path: /home/danj/git/git.chown.me/ansible/roles/cvs/tasks/main.yml:62
Using module file /home/danj/venv/ansible/lib/python3.8/site-packages/ansible/modules/files/lineinfile.py
Pipelining is enabled.
<virtie-root> ESTABLISH SSH CONNECTION FOR USER: root
<virtie-root> SSH: EXEC ssh -C -o ControlMaster=auto -o ControlPersist=60s -o KbdInteractiveAuthentication=no -o PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey -o PasswordAuthentication=no -o 'User="root"' -o ConnectTimeout=10 -o ControlPath=/home/danj/.ansible/cp/1f07b313ca virtie-root '/bin/sh -c '"'"'sudo -H -S -n  -u danj /bin/sh -c '"'"'"'"'"'"'"'"'echo BECOME-SUCCESS-ybempfbcktyjiqpnfzkflihnyxlyekjq ; /usr/local/bin/python3'"'"'"'"'"'"'"'"' && sleep 0'"'"''
Escalation succeeded
<virtie-root> (1, b'', b'Traceback (most recent call last):\n  File "<stdin>", line 102, in <module>\n  File "<stdin>", line 17, in _ansiballz_main\n  File "<frozen importlib._bootstrap>", line 983, in _find_and_load\n  File "<frozen importlib._bootstrap>", line 963, in _find_and_load_unlocked\n  File "<frozen importlib._bootstrap>", line 906, in _find_spec\n  File "<frozen importlib._bootstrap_external>", line 1280, in find_spec\n  File "<frozen importlib._bootstrap_external>", line 1249, in _get_spec\n  File "<frozen importlib._bootstrap_external>", line 1213, in _path_importer_cache\nPermissionError: [Errno 13] Permission denied\n')
<virtie-root> Failed to connect to the host via ssh: Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 17, in _ansiballz_main
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 963, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 906, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1280, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1249, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1213, in _path_importer_cache
PermissionError: [Errno 13] Permission denied
The full traceback is:
Traceback (most recent call last):
  File "<stdin>", line 102, in <module>
  File "<stdin>", line 17, in _ansiballz_main
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 963, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 906, in _find_spec
  File "<frozen importlib._bootstrap_external>", line 1280, in find_spec
  File "<frozen importlib._bootstrap_external>", line 1249, in _get_spec
  File "<frozen importlib._bootstrap_external>", line 1213, in _path_importer_cache
PermissionError: [Errno 13] Permission denied
fatal: [virtie-root]: FAILED! => {
    "changed": false,
    "module_stderr": "Traceback (most recent call last):\n  File \"<stdin>\", line 102, in <module>\n  File \"<stdin>\", line 17, in _ansiballz_main\n  File \"<frozen importlib._bootstrap>\", line 983, in _find_and_load\n  File \"<frozen importlib._bootstrap>\", line 963, in _find_and_load_unlocked\n  File \"<frozen importlib._bootstrap>\", line 906, in _find_spec\n  File \"<frozen importlib._bootstrap_external>\", line 1280, in find_spec\n  File \"<frozen importlib._bootstrap_external>\", line 1249, in _get_spec\n  File \"<frozen importlib._bootstrap_external>\", line 1213, in _path_importer_cache\nPermissionError: [Errno 13] Permission denied\n",
    "module_stdout": "",
    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
    "rc": 1
}
```
Thanks!
tmp_args = {}
    module_defaults = {}
    
    if isinstance(defaults, list):
        for default in defaults:
            module_defaults.update(default)
    
    if module_defaults:
        module_defaults = templar.template(module_defaults)
        
        if action in C.config.module_defaults_groups:
            for group in C.config.module_defaults_groups.get(action, []):
                tmp_args.update((module_defaults.get('group/{0}'.format(group)) or {}).copy())
        
        if action in module_defaults:
            tmp_args.update(module_defaults[action].copy())
    
    tmp_args.update(args)
    return tmp_args