### Summary

When running user module with `create_home`, the directory is owned by `root:root` and its `create_date` isn't proper (probably the date of something else, created at machine setup)

```
drwxr-xr-x  2 test_user              test_user              4.0K Jul 29 13:07 test_user <- created by 2.11.2
drwxr-xr-x  2 root                   root                   4.0K Jul 15 10:37 test_user_3  <- created by 2.12.0.dev0
```


Fails in
ansible-playbook [core 2.12.0.dev0] 
Works in
ansible-playbook [core 2.11.2.post0] 

I suspect that this is the reason (but can't be sure)
https://github.com/ansible/ansible/commit/2f7e0b84895b4d6816e695b009bf53e78e6aa088



### Issue Type

Bug Report

### Component Name

user

### Ansible Version

```console
$ ansible --version 2.12.0.dev0
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

Ubuntu 20.04

### Steps to Reproduce

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

```


### Expected Results

Folder is created with user's permissions

### Actual Results

```console
Folder is created with root:root permissions
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
chunk = os.read(master_out_fd, 10240)
                            out_buffer += chunk
                            if prompt in out_buffer:
                                os.write(master_in_fd, to_bytes(self.ssh_passphrase, errors='strict') + b'\r')
                                prompt = second_prompt
                        else:
                            chunk = os.read(master_err_fd, 10240)
                            err_buffer += chunk
                            if prompt in err_buffer:
                                os.write(master_in_fd, to_bytes(self.ssh_passphrase, errors='strict') + b'\r')
                                prompt = second_prompt
                        if b'Overwrite (y/n)?' in out_buffer or b'Overwrite (y/n)?' in err_buffer:
                            
                            return (None, 'Key already exists', '')
                rc = p.returncode
                out = to_native(out_buffer)
                err = to_native(err_buffer)
            except OSError as e:
                return (1, '', to_native(e))
        else:
            cmd.append('-N')
            cmd.append('')
            (rc, out, err) = self.execute_command(cmd, data=overwrite)
        if rc == 0 and not self.module.check_mode:
            
            
            os.chown(ssh_key_file, info[2], info[3])
            os.chown('%s.pub' % ssh_key_file, info[2], info[3])
        return (rc, out, err)
    def ssh_key_fingerprint(self):