##### SUMMARY
I'll start by saying that this is a bit of a weird one. It seems that when a handler task is included from another handler and notifies yet another handler, ansible generates spurious warnings and then hangs.

Just to confuse things even more, if you remove the variable reference in `name` OR the `notify` from `bar_handler_tasks.yml`, ansible executes normally.

Another thing to note is that this code (or something very much like it) apparently worked properly in Ansible 2.7.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
handlers

##### ANSIBLE VERSION
```
ansible 2.8.1
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/agaffney/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.12 (default, Nov 12 2018, 14:36:49) [GCC 5.4.0 20160609]
```

##### CONFIGURATION
N/A

##### OS / ENVIRONMENT
N/A

##### STEPS TO REPRODUCE

`bar.yml`:

```yaml
- hosts: localhost
  gather_facts: no
  handlers:
    - name: play handler 1
      include_tasks: bar_handler_tasks.yml

    - name: play handler 2
      debug:
        msg: play handler 2

  tasks:
    - name: trigger handler 1
      debug:
        msg: trigger handler 1
      changed_when: true
      notify: play handler 1
```

`bar_handler_tasks.yml`:

```yaml
- name: included handler 1 {{ inventory_hostname }}
  debug:
    msg: included handler 1

- name: included handler 2
  debug:
    msg: whatever
  changed_when: true
  notify: play handler 2
```

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->


##### ACTUAL RESULTS
```
PLAY [localhost] **************************************************************************************************************************************************************************************************************************************************************

TASK [trigger handler 1] ******************************************************************************************************************************************************************************************************************************************************
changed: [localhost] => {
    "msg": "trigger handler 1"
}

RUNNING HANDLER [play handler 1] **********************************************************************************************************************************************************************************************************************************************
included: /tmp/ansible_test/kiwiirc/bar_handler_tasks.yml for localhost

RUNNING HANDLER [included handler 1 {{ inventory_hostname }}] *****************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "included handler 1"
}

RUNNING HANDLER [included handler 2] ******************************************************************************************************************************************************************************************************************************************
 [WARNING]: 'inventory_hostname' is undefined

RUNNING HANDLER [included handler 2] ******************************************************************************************************************************************************************************************************************************************
 [ERROR]: User interrupted execution
```

except ConnectionError as e:
                    
                    display.debug("got an error while closing persistent connection: %s" % e)
            else:
                msg = 'no connection, nothing to reset'
        else:
            raise AnsibleError("invalid meta action requested: %s" % meta_action, obj=task._ds)
        result = {'msg': msg}
        if skipped:
            result['skipped'] = True
        else:
            result['changed'] = False
        display.vv("META: %s" % msg)
        return [TaskResult(target_host, task, result)]
    def get_hosts_left(self, iterator):
        ''' returns list of available hosts for this iterator by filtering out unreachables '''
        hosts_left = []
        for host in self._inventory.get_hosts(iterator._play.hosts, order=iterator._play.order):
            if host.name not in self._tqm._unreachable_hosts:
                hosts_left.append(host)
        return hosts_left
    def update_active_connections(self, results):
        ''' updates the current active persistent connections '''
        for r in results:
            if 'args' in r._task_fields:
                socket_path = r._task_fields['args'].get('_ansible_socket')
                if socket_path:
                    if r._host not in self._active_connections:
                        self._active_connections[r._host] = socket_path
class NextAction(object):