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

inv_hosts = self._inventory.get_hosts(iterator._play.hosts, order=iterator._play.order)
        [iterator.get_next_task_for_host(host) for host in inv_hosts if host.name not in self._tqm._unreachable_hosts]
        
        
        failed_hosts = iterator.get_failed_hosts()
        unreachable_hosts = self._tqm._unreachable_hosts.keys()
        display.debug("running handlers")
        handler_result = self.run_handlers(iterator, play_context)
        if isinstance(handler_result, bool) and not handler_result:
            result |= self._tqm.RUN_ERROR
        elif not handler_result:
            result |= handler_result
        
        
        failed_hosts = set(failed_hosts).union(iterator.get_failed_hosts())
        unreachable_hosts = set(unreachable_hosts).union(self._tqm._unreachable_hosts.keys())
        
        if not isinstance(result, bool) and result != self._tqm.RUN_OK:
            return result
        elif len(unreachable_hosts) > 0:
            return self._tqm.RUN_UNREACHABLE_HOSTS
        elif len(failed_hosts) > 0:
            return self._tqm.RUN_FAILED_HOSTS
        else:
            return self._tqm.RUN_OK
    def get_hosts_remaining(self, play):