<!--- 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
We a playbook that is using `ansible_ssh_common_args` which proxy the command through a jumphost using ssh keys. The play we are running uses `command` to copy files between hosts, the play also has `async: 600` on it. 

The issue is that under the `/home/ansible/.ansible_async` folder leaves files behind that have the output of the single async file copy and _never_ cleans up the files. Over time this leads to the system running out of inodes as for every file that was copied a file is created, saved, and never deleted after the play. 

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
`async` task flag

##### ANSIBLE VERSION
```paste below
ansible-playbook 2.9.7
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/var/lib/awx/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.6/site-packages/ansible
  executable location = /usr/bin/ansible-playbook
  python version = 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]
Using /etc/ansible/ansible.cfg as config file
host_list declined parsing /tmp/awx_124793_637oraq9/tmpu7_ol0_8 as it did not pass its verify_file() method
Parsed /tmp/awx_124793_637oraq9/tmpu7_ol0_8 inventory source with script plugin
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
Defaults
```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Jumphost: CentOS 7
Target OS: AIX 7.1

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
Playbook
```yaml
- name: copy files
  hosts: all
  gather_facts: yes
  vars:
    source_system_paths:
      - "/test" 
    source_host: ""
  tasks:
    - name: Sync Folders cmd
      become: true
      become_user: ansible
      command: time sudo rsync -av -e "/usr/bin/ssh -o StrictHostKeyChecking=no -i /home/ansible/.ssh/id_rsa" ansible@"{{ source_host }}":"{{ item }}" "{{ item }}"
      with_items:
        - "{{ source_system_paths }}"
      loop_control:
        extended: yes
      async: 600
      poll: 5
```
Run ansible with following flags:
```
ansible_ssh_common_args: '-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o ProxyCommand="ssh -W %h:%p {{ jh_ssh_user }}@{{ jh_ip }} -i $JH_SSH_PRIVATE_KEY -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"'
```
In the home directory of the anisble user on the target host you will find `~/.ansible_async` where files will be created for each file that was copied. 

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
The folder or its contents from the run, `~/.ansible_async` is deleted completely or the files that were created by the playbook are deleted. 

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->

FIles are never deleted and over time the system will run out of space, inodes, etc... as there are files left behind from _all_ previous runs. 

if self._task.failed_when:
                    cond = Conditional(loader=self._loader)
                    cond.when = self._task.failed_when
                    failed_when_result = cond.evaluate_conditional(templar, vars_copy)
                    result['failed_when_result'] = result['failed'] = failed_when_result
                else:
                    failed_when_result = False
                return failed_when_result
            if 'ansible_facts' in result:
                if self._task.action in C._ACTION_WITH_CLEAN_FACTS:
                    vars_copy.update(result['ansible_facts'])
                else:
                    
                    af = wrap_var(result['ansible_facts'])
                    vars_copy['ansible_facts'] = combine_vars(vars_copy.get('ansible_facts', {}), namespace_facts(af))
                    if C.INJECT_FACTS_AS_VARS:
                        vars_copy.update(clean_facts(af))
            
            if 'failed' not in result:
                
                if 'rc' in result and result['rc'] not in [0, "0"]:
                    result['failed'] = True
                else:
                    result['failed'] = False
            
            if self._task.until:
                result['attempts'] = attempt
            
            if 'changed' not in result: