##### SUMMARY
Delegating a task to another host that uses a different Python interpreter always fails.  This was reported previously (#61002, #63180), but the fix (#64906) does not seem to have resolved the issue.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
discovered_interpreter_python

##### ANSIBLE VERSION
```
ansible 2.9.9
  config file = None
  configured module search path = ['/home/dhatch/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/dhatch/.local/lib/python3.8/site-packages/ansible
  executable location = /home/dhatch/.local/bin/ansible
  python version = 3.8.2 (default, Feb 28 2020, 00:00:00) [GCC 10.0.1 20200216 (Red Hat 10.0.1-0.8)]
```

##### CONFIGURATION
```
```

##### OS / ENVIRONMENT
Control machine: Ansible 2.9.9 on Fedora 32
Host A: CentOS 8
Host B (delegation target): CentOS 7

##### STEPS TO REPRODUCE
This playbook shows that delegating a task to the CentOS 7 machine does not work when the task host is CentOS 8:
```yaml
- hosts: all
  tasks:
  - meta: clear_facts
- hosts: all
  gather_facts: true
  tasks:
  - debug:
      var: discovered_interpreter_python
  - command: 'true'

- hosts: centos-8-host
  tasks:
  - command: 'true'
    delegate_to: centos-7-host
    ignore_errors: true
  
- hosts: centos-8-host
  tasks:
  - command: 'true'
    delegate_to: centos-7-host
    delegate_facts: false
    ignore_errors: true
```

##### EXPECTED RESULTS
The Python interpreter used on the delegation target should be the one discovered for that host, NOT the host of the task itself.


##### ACTUAL RESULTS
```paste below
PLAY [all] *************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [centos-7-host]
ok: [centos-8-host]

PLAY [all] *************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [centos-7-host]
ok: [centos-8-host]

TASK [debug] ***********************************************************************************************************************************
ok: [centos-8-host] => {
    "discovered_interpreter_python": "/usr/libexec/platform-python"
}
ok: [centos-7-host] => {
    "discovered_interpreter_python": "/usr/bin/python"
}

TASK [command] *********************************************************************************************************************************
changed: [centos-7-host]
changed: [centos-8-host]

PLAY [centos-8-host] *********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [centos-8-host]

TASK [command] *********************************************************************************************************************************
fatal: [centos-8-host -> centos-7-host]: FAILED! => {"changed": false, "module_stderr": "Shared connection to centos-7-host closed.\r\n", "module_stdout": "/bin/sh: /usr/libexec/platform-python: No such file or directory\r\n", "msg": "The module failed to execute correctly, you probably need to set the interpreter.\nSee stdout/stderr for the exact error", "rc": 127}
...ignoring

PLAY [centos-8-host] *********************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************
ok: [centos-8-host]

TASK [command] *********************************************************************************************************************************
fatal: [centos-8-host -> centos-7-host]: FAILED! => {"changed": false, "module_stderr": "Shared connection to centos-7-host closed.\r\n", "module_stdout": "/bin/sh: /usr/libexec/platform-python: No such file or directory\r\n", "msg": "The module failed to execute correctly, you probably need to set the interpreter.\nSee stdout/stderr for the exact error", "rc": 127}
...ignoring

PLAY RECAP *************************************************************************************************************************************
centos-8-host : ok=8    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=2
centos-7-host : ok=4    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

```

utf-8 then we have to figure out how to transform it to unicode.
            If the value is just going to be displayed to the user (or
            discarded) then the default of 'replace' is fine.  If the data is
            used as a key or is going to be written back out to a file
            verbatim, then this won't work.  May have to use some sort of
            replacement strategy (python3 could use surrogateescape)
        :kwarg chdir: cd into this directory before executing the command.
        '''
        display.debug("_low_level_execute_command(): starting")
        
        
        
        
        if chdir:
            display.debug("_low_level_execute_command(): changing cwd to %s for this command" % chdir)
            cmd = self._connection._shell.append_command('cd %s' % chdir, cmd)
        
        if executable:
            self._connection._shell.executable = executable
        ruser = self._get_remote_user()
        buser = self.get_become_option('become_user')
        if (sudoable and self._connection.become and  
                resource_from_fqcr(self._connection.transport) != 'network_cli' and  
                (C.BECOME_ALLOW_SAME_USER or (buser != ruser or not any((ruser, buser))))):  
            display.debug("_low_level_execute_command(): using become for this command")
            cmd = self._connection.become.build_become_command(cmd, self._connection._shell)
        if self._connection.allow_executable:
            if executable is None:
                executable = self._play_context.executable