<!--- 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 -->
Customize Windows 10 guest OS with wait_for_customzation parameter set, but after many hours there is no return and the playbook just stuck there.
##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
<!--- Write the short name of the module, plugin, task or feature below, use your best guess if unsure -->
vmware_guest
##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.10.0.dev0
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /root/.local/lib/python2.7/site-packages/ansible
  executable location = ./bin/ansible
  python version = 2.7.15+ (default, Jul  9 2019, 16:51:35) [GCC 7.4.0]
```

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

```

##### OS / ENVIRONMENT
<!--- Provide all relevant information below, e.g. target OS versions, network device firmware, etc. -->
vSphere 6.7U3, Windows 10 guest OS 32bit with BIOS firmware

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

<!--- Paste example playbooks or commands between quotes below -->
```yaml

```

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

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
If something wrong with the customization in guest OS, no event in VC, then wait_for_customization should return timeout error in a not very long time.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
no timeout error return after more than 10 hours, just stuck there.
<!--- Paste verbatim command output between quotes -->
```paste below

```

if cdrom_spec['controller_type'] == 'sata' and \
                        (cdrom_spec.get('controller_number') not in range(0, 4) or cdrom_spec.get('unit_number') not in range(0, 30)):
                    self.module.fail_json(msg="Invalid cdrom.controller_number: %s or cdrom.unit_number: %s,"
                                              " valid controller_number value is 0-3, valid unit_number is 0-29"
                                              " for SATA controller." % (cdrom_spec.get('controller_number'), cdrom_spec.get('unit_number')))
                ctl_exist = False
                for exist_spec in cdroms.get(cdrom_spec['controller_type']):
                    if exist_spec['num'] == cdrom_spec['controller_number']:
                        ctl_exist = True
                        exist_spec['cdrom'].append(cdrom_spec)
                        break
                if not ctl_exist:
                    cdroms.get(cdrom_spec['controller_type']).append({'num': cdrom_spec['controller_number'], 'cdrom': [cdrom_spec]})
        return cdroms
    def configure_cdrom(self, vm_obj):
        
        if self.params.get('cdrom'):
            if vm_obj and vm_obj.config.template:
                
                return
            if isinstance(self.params.get('cdrom'), dict):
                self.configure_cdrom_dict(vm_obj)
            elif isinstance(self.params.get('cdrom'), list):
                self.configure_cdrom_list(vm_obj)
    def configure_cdrom_dict(self, vm_obj):
        if self.params["cdrom"].get('type') not in ['none', 'client', 'iso']:
            self.module.fail_json(msg="cdrom.type is mandatory. Options are 'none', 'client', and 'iso'.")
        if self.params["cdrom"]['type'] == 'iso' and not self.params["cdrom"].get('iso_path'):
            self.module.fail_json(msg="cdrom.iso_path is mandatory when cdrom.type is set to iso.")
        cdrom_spec = None