The only time I've ever seen that behavior is on the first request to a brand-new Windows AWS instance. For some reason, the shell creation can take up to 30s, much longer than our default operation timeout of ~5s.
You can try increasing the operation and read timeouts by adjusting the ansible_winrm_operation_timeout_sec and ansible_winrm_read_timeout_sec inventory vars (the read timeout must be > than operation timeout). They're set to relatively low values to minimize the "dead host" detection interval, and this doesn't typically cause problems in normal operation.
-Matt