<!--- 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
<!--- Explain the problem briefly below -->
WinRM kerberos tickets are not getting generated for the playbook tasks, the issue fails in 2.9.10 and 2.9.11 version, while it works with no code change in 2.9.9

In affected Ansible version (2.9.10 and 2.9.11), if I generate a Kerberos ticket (via kinit) in awx_task docker before running the playm the play works, in Ansible 2.9.9 the play will run with no manual ticket creation.

Beside realms configuration (which I am sure they are right as the code works for Ansible 2.9.9), below are other krb5 configuration and I had always default_ccache_name disabled.

```
bash-4.4# cat /etc/krb5.conf
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 default_realm = <DOMAIN NAME>
 dns_lookup_realm = false
 dns_lookup_kdc = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
# default_ccache_name = KEYRING:persistent:%{uid}
```

Although if fails in AWX, in awx_docker command line, below works:

```
bash-4.4# cat sam_inven
[windows]
<HOST FQDN>

[windows:vars]
ansible_user=<AD ACCOUNT>@<DOMAIN NAME>
ansible_password=<AD ACCOUNT Password>
ansible_connection=winrm
ansible_port=5986
ansible_winrm_transport=kerberos
ansible_winrm_server_cert_validation=ignore
ansible_winrm_kerberos_delegation=true
become_method=runas
```

```
bash-4.4# cat test-play.yml
---
- name: PROXY TEST
  hosts: <HOST FQDN>
  gather_facts: no
  collections:
    - community.vmware

  tasks:
    - name: Wait for system connection via WinRM
      wait_for_connection:
        timeout: 20
      register: result_wait

    - name: Show WinRM result
      debug:
        var: result_wait
```


```
bash-4.4# ansible-playbook -i sam_inven test-play.yml

PLAY [PROXY TEST] **************************************************************************************************************************************************


TASK [Wait for system connection via WinRM] ************************************************************************************************************************

ok: [<HOST FQDN>]

TASK [Show WinRM result] *******************************************************************************************************************************************

ok: [<HOST FQDN>] => {
    "result_wait": {
        "changed": false,
        "elapsed": 1,
        "failed": false
    }
}

PLAY RECAP *********************************************************************************************************************************************************

<HOST FQDN> : ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

bash-4.4#
```


##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
WINRM Kerberos

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.11
  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/local/lib/python3.6/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Nov 21 2019, 19:31:34) [GCC 8.3.1 20190507 (Red Hat 8.3.1-4)]
```

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

bash-4.4# ansible-config dump --only-changed
bash-4.4#

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
Ansible running as AWX docker images (official) based on CentOS Linux release 8.1.1911 (Core)
Target hosts are Windows machines running Windows Server 2016

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

<!--- Paste example playbooks or commands between quotes below -->
In AWX inventory host var:

ansible_connection: winrm
ansible_winrm_transport: kerberos
ansible_winrm_server_cert_validation: ignore 
ansible_winrm_kerberos_delegation: true
become_method: runas
ansible_port: 5986

```yaml
---
- name: TEST
  hosts: localhost
  gather_facts: no
  tasks:
    - name: Wait for system connection via WinRM
      wait_for_connection:
        timeout: 60
      register: result_wait
      delegate_to: <host FQDN>
      ignore_errors: yes
    
    - name: Show WinRM result
      debug:
        var: result_wait

```

<!--- HINT: You can paste gist.github.com links for larger files -->

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

```
{
    "elapsed": 1,
    "_ansible_no_log": false,
    "changed": false,
    "_ansible_delegated_vars": {
        "ansible_host": "<HOST FQDN>"
    }
}
```

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

<!--- Paste verbatim command output between quotes -->
```paste below
{
    "msg": "timed out waiting for ping module test success: kerberos: authGSSClientInit() failed: (('Unspecified GSS failure.  Minor code may provide more information', 851968), (\"Can't find client principal <ACCOUNT NAME>@<DOMAIN NAME> in cache collection\", -1765328243))",
    "elapsed": 60,
    "_ansible_no_log": false,
    "changed": false,
    "_ansible_delegated_vars": {
        "ansible_host": "<HOST FQDN>",
        "ansible_port": 5986,
        "ansible_user": "<acount name>@<DOMAIN NAME>"
    }
}
```

if not HAS_WINRM:
            raise AnsibleError("winrm or requests is not installed: %s" % to_native(WINRM_IMPORT_ERR))
        elif not HAS_XMLTODICT:
            raise AnsibleError("xmltodict is not installed: %s" % to_native(XMLTODICT_IMPORT_ERR))
        super(Connection, self)._connect()
        if not self.protocol:
            self._build_winrm_kwargs()  
            self.protocol = self._winrm_connect()
            self._connected = True
        return self
    def reset(self):
        self.protocol = None
        self.shell_id = None
        self._connect()
    def _wrapper_payload_stream(self, payload, buffer_size=200000):
        payload_bytes = to_bytes(payload)
        byte_count = len(payload_bytes)
        for i in range(0, byte_count, buffer_size):
            yield payload_bytes[i:i + buffer_size], i + buffer_size >= byte_count
    def exec_command(self, cmd, in_data=None, sudoable=True):
        super(Connection, self).exec_command(cmd, in_data=in_data, sudoable=sudoable)
        cmd_parts = self._shell._encode_script(cmd, as_list=True, strict_mode=False, preserve_rc=False)