<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
hostvars not available to delegate_to tasks

Related to #70320

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
$ ansible --version
ansible 2.9.10
  config file = /Users/jeanfabrice/test/ansible.cfg
  configured module search path = ['/Users/jeanfabrice/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/jeanfabrice/.virtualenvs/test/lib/python3.7/site-packages/ansible
  executable location = /Users/jeanfabrice/.virtualenvs/test/bin/ansible
  python version = 3.7.7 (default, Mar 14 2020, 02:39:38) [Clang 11.0.0 (clang-1100.0.33.17)]
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
MacOS, Linux

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
```yaml
---
- hosts: all

  tasks:
    - name: Set login
      set_fact:
        login: user

    - name: Set password
      set_fact:
        password: password

    - name: delegate ls to server2
      delegate_to: server2
      command: ls
      vars:
        ansible_user: "{{ hostvars[inventory_hostname]['login'] }}"
        ansible_password: "{{ hostvars[inventory_hostname]['password'] }}"
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
hostvars to be defined in delegate_to tasks

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

<!--- Paste verbatim command output between quotes -->
```paste below
$ ./bin/ansible-playbook test.yml -i inventory  -l server1

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

TASK [Set login] ***********************************************************************************************************************************************************************
ok: [server1]

TASK [Set password] ********************************************************************************************************************************************************************
ok: [server1]

TASK [delegate ls to server2] **********************************************************************************************************************************************************
fatal: [server1]: FAILED! => {"msg": "'hostvars' is undefined"}

PLAY RECAP *****************************************************************************************************************************************************************************
server1                    : ok=2    changed=0    unreachable=0    failed=1    skipped=0    rescued=0    ignored=0 
```

"The '%s' connection does not provide a TTY which is required for the selected "
                    "become plugin: %s." % (conn_type, become_plugin.name)
                )
            
            
            
            self._play_context.set_become_plugin(become_plugin.name)
        
        self._play_context.set_attributes_from_plugin(connection)
        if any(((connection.supports_persistence and C.USE_PERSISTENT_CONNECTIONS), connection.force_persistence)):
            self._play_context.timeout = connection.get_option('persistent_command_timeout')
            display.vvvv('attempting to start connection', host=self._play_context.remote_addr)
            display.vvvv('using connection plugin %s' % connection.transport, host=self._play_context.remote_addr)
            options = self._get_persistent_connection_options(connection, variables, templar)
            socket_path = start_connection(self._play_context, options, self._task._uuid)
            display.vvvv('local domain socket path is %s' % socket_path, host=self._play_context.remote_addr)
            setattr(connection, '_socket_path', socket_path)
        return connection
    def _get_persistent_connection_options(self, connection, variables, templar):
        final_vars = combine_vars(variables, variables.get('ansible_delegated_vars', dict()).get(self._task.delegate_to, dict()))
        option_vars = C.config.get_plugin_vars('connection', connection._load_name)
        plugin = connection._sub_plugin
        if plugin.get('type'):
            option_vars.extend(C.config.get_plugin_vars(plugin['type'], plugin['name']))
        options = {}
        for k in option_vars:
            if k in final_vars:
                options[k] = templar.template(final_vars[k])
        return options
    def _set_plugin_options(self, plugin_type, variables, templar, task_keys):