<!--- 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 
```

if (not self._connection or
                not getattr(self._connection, 'connected', False) or
                self._play_context.remote_addr != self._connection._play_context.remote_addr):
            self._connection = self._get_connection(variables=variables, templar=templar)
        else:
            
            
            self._connection._play_context = self._play_context
        if self._task.delegate_to:
            
            delegated_vars = variables.get('ansible_delegated_vars', {}).get(self._task.delegate_to, {})
            orig_vars = templar.available_variables
            templar.available_variables = delegated_vars
            plugin_vars = self._set_connection_options(delegated_vars, templar)
            templar.available_variables = orig_vars
        else:
            
            plugin_vars = self._set_connection_options(variables, templar)
        
        self._handler = self._get_action_handler(connection=self._connection, templar=templar)
        
        self._task.args = get_action_args_with_defaults(
            self._task.action, self._task.args, self._task.module_defaults, templar, self._task._ansible_internal_redirect_list
        )
        
        omit_token = variables.get('omit')
        if omit_token is not None:
            self._task.args = remove_omit(self._task.args, omit_token)
        
        if self._task.until: