##### SUMMARY
Wide glyphs in task names cause the asterisks in the output to wrap around to the next line. My guess is that Ansible is treating characters that take up two spaces as one. Example: 🚀 and 汉字.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
ansible

##### ANSIBLE VERSION
```
ansible 2.8.5
  config file = /home/major/git/cki-project-experimental/aws-deployment/ansible.cfg
  configured module search path = ['/home/major/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/major/.pyenv/versions/3.7.4/envs/venv-3.7.4/lib/python3.7/site-packages/ansible
  executable location = /home/major/.pyenv/versions/venv-3.7.4/bin/ansible
  python version = 3.7.4 (default, Sep 20 2019, 07:35:42) [GCC 9.2.1 20190827 (Red Hat 9.2.1-1)]
```

##### CONFIGURATION
```
(no config changes from defaults)
```

##### OS / ENVIRONMENT
Fedora 30 with Python 3.7.4

##### STEPS TO REPRODUCE
I ran a playbook that contains emojis:

```yaml
---

- hosts: localhost
  gather_facts: no

  tasks:

    - name: "🚀 This name has emoji"
      debug:
        msg: "🚀 is a fun emoji"

    - name: "汉字 This name has Chinese characters"
      debug:
        msg: "汉字 means 'Chinese character'"
```

##### EXPECTED RESULTS

I expected the asterisks to be the same length for all lines without wrapping.


##### ACTUAL RESULTS
The output is:

```
PLAY [deployer] *****************************************************************************

TASK [🚀 This name has emoji] ****************************************************************
Thursday 03 October 2019  11:03:41 -0500 (0:00:00.025)       0:00:00.025 ****** 
ok: [localhost] => 
  msg: 🚀 is a fun emoji

TASK [汉字 This name has Chinese characters] **************************************************
Thursday 03 October 2019  11:03:41 -0500 (0:00:00.009)       0:00:00.035 ****** 
ok: [localhost] => 
  msg: 汉字 means 'Chinese character'

PLAY RECAP **********************************************************************************
localhost                  : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
```
from termios import TIOCGWINSZ
from ansible import constants as C
from ansible.errors import AnsibleError, AnsibleAssertionError
from ansible.module_utils._text import to_bytes, to_text, to_native
from ansible.module_utils.six import with_metaclass, string_types
from ansible.utils.color import stringc
from ansible.utils.singleton import Singleton
from ansible.utils.unsafe_proxy import wrap_var
try:
    
    input = raw_input
except NameError:
    
    pass
class FilterBlackList(logging.Filter):
    def __init__(self, blacklist):
        self.blacklist = [logging.Filter(name) for name in blacklist]
    def filter(self, record):
        return not any(f.filter(record) for f in self.blacklist)
class FilterUserInjector(logging.Filter):
    """
    This is a filter which injects the current user as the 'user' attribute on each record. We need to add this filter
    to all logger handlers so that 3rd party libraries won't print an exception due to user not being defined.
    """
    try:
        username = getpass.getuser()
    except KeyError:
        
        username = 'uid=%s' % os.getuid()
    def filter(self, record):