##### SUMMARY
ansible_play_batch variable is including unreachable hosts

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ansible_play_batch

##### ANSIBLE VERSION
```paste below
ansible 2.9.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/[removed]/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /[removed]/.local/lib/python3.5/site-packages/ansible
  executable location = /[removed]/.local/bin/ansible
  python version = 3.5.2 (default, Oct  8 2019, 13:06:37) [GCC 5.4.0 20160609]

```

##### CONFIGURATION
```paste below
DEFAULT_FORKS(/etc/ansible/ansible.cfg) = 25
DEFAULT_HOST_LIST(/etc/ansible/ansible.cfg) = ['/etc/ansible/inventory']
DEFAULT_LOG_PATH(/etc/ansible/ansible.cfg) = /var/log/ansible/ansible.log
TRANSFORM_INVALID_GROUP_CHARS(/etc/ansible/ansible.cfg) = ignore

```

##### OS / ENVIRONMENT
ubuntu 16.04


##### STEPS TO REPRODUCE
When evaluating ansible_play_batch  using jinja in a playbook, ansible_play_batch returns an unreachable hosts, causing the entire play example below to fail (due to run_once). To reproduce, target two machines, and reboot one machine mid-play (causing an unreachable on that machine).

<!--- Paste example playbooks or commands between quotes below -->
```yaml
  - set_fact:
        emailBody: |
          {% for item in ansible_play_batch -%}
          {% if hostvars[item].kernelVersion != hostvars[item].currentKernel.stdout %}
          {{ hostvars[item].inventory_hostname + ' - ' + hostvars[item].currentKernel.stdout + ' - ' + hostvars[item].kernelVersion }}
          {% endif %}
          {%- endfor %}
    delegate_to: 127.0.0.1
    run_once: True
```


##### EXPECTED RESULTS
ansible_play_batch only includes all non-failed/non-unreachable hosts per documentation found at https://docs.ansible.com/ansible/latest/reference_appendices/special_variables.html


##### ACTUAL RESULTS
ansible_play_batch  is including the rebooted (unreachable) machine. 

<!--- Paste verbatim command output between quotes -->
```paste below
"The task includes an option with an undefined variable. The error was: 'ansible.vars.hostvars.HostVarsVars object' has no attribute 'kernelVersion'
```

return self._loader
    def get_workers(self):
        return self._workers[:]
    def terminate(self):
        self._terminated = True
    def has_dead_workers(self):
        
        
        defunct = False
        for x in self._workers:
            if getattr(x, 'exitcode', None):
                defunct = True
        return defunct
    @lock_decorator(attr='_callback_lock')
    def send_callback(self, method_name, *args, **kwargs):
        for callback_plugin in [self._stdout_callback] + self._callback_plugins:
            
            
            if getattr(callback_plugin, 'disabled', False):
                continue
            
            
            wants_implicit_tasks = getattr(callback_plugin, 'wants_implicit_tasks', False)
            
            methods = []
            for possible in [method_name, 'v2_on_any']:
                gotit = getattr(callback_plugin, possible, None)
                if gotit is None:
                    gotit = getattr(callback_plugin, possible.replace('v2_', ''), None)