### Summary

When the _src_ and _dst_ has some inner folders in common, the inner folder has some nested folders in common and some are different, the copy command does not copy the content of the nested inner folder. The problem only happens in _remote_src_ mode

### Issue Type

Bug Report

### Component Name

ansible.builtin.copy

### Ansible Version

```console
ansible 2.10.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/tngo/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/tngo/.pyenv/versions/3.6.8/lib/python3.6/site-packages/ansible
  executable location = /home/tngo/.pyenv/versions/3.6.8/bin/ansible
  python version = 3.6.8 (default, Dec  6 2019, 10:08:19) [GCC 7.4.0]
```


### Configuration

```console
Tested with `-c local`
```


### OS / Environment

N/A

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
# test.yml
- hosts: all
  tasks:
    - copy:
        src: /tmp/src/
        dest: /tmp/dest/
        remote_src: yes
```

```
rm -rf /tmp/src/ /tmp/dest/
mkdir -p /tmp/src/a/b1/c1
ansible-playbook -c local -i localhost, test.yml
tree /tmp/dest/

rm -rf /tmp/src/
mkdir -p /tmp/src/a/b1/c2
mkdir -p /tmp/src/a/b2/c3
ansible-playbook -c local -i localhost, test.yml
tree /tmp/dest/
```


### Expected Results

The folder _/tmp/src/a/b1/c2_ must be copied to _/tmp/dest/a/b1/c2_

### Actual Results

```console
PLAY [all] ***************************************************************************************

TASK [Gathering Facts] ***************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host localhost should use /usr/bin/python3, 
but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future 
Ansible release will default to using the discovered platform python for this host. See 
https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more 
information. This feature will be removed in version 2.12. Deprecation warnings can be disabled 
by setting deprecation_warnings=False in ansible.cfg.
ok: [localhost]

TASK [copy] **************************************************************************************
changed: [localhost]

PLAY RECAP ***************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   



/tmp/dest/
└── a
    └── b1
        └── c1

3 directories, 0 files



PLAY [all] ***************************************************************************************

TASK [Gathering Facts] ***************************************************************************
[DEPRECATION WARNING]: Distribution Ubuntu 18.04 on host localhost should use /usr/bin/python3, 
but is using /usr/bin/python for backward compatibility with prior Ansible releases. A future 
Ansible release will default to using the discovered platform python for this host. See 
https://docs.ansible.com/ansible/2.10/reference_appendices/interpreter_discovery.html for more 
information. This feature will be removed in version 2.12. Deprecation warnings can be disabled 
by setting deprecation_warnings=False in ansible.cfg.
ok: [localhost]

TASK [copy] **************************************************************************************
changed: [localhost]

PLAY RECAP ***************************************************************************************
localhost                  : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   



/tmp/dest/
└── a
    ├── b1
    │   └── c1
    └── b2
        └── c3

5 directories, 0 files
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
linkto = os.readlink(b_src_item_path)
                os.symlink(linkto, b_dest_item_path)
            if not os.path.islink(b_src_item_path) and os.path.isfile(b_src_item_path):
                shutil.copyfile(b_src_item_path, b_dest_item_path)
                shutil.copymode(b_src_item_path, b_dest_item_path)
                if owner is not None:
                    module.set_owner_if_different(b_dest_item_path, owner, False)
                if group is not None:
                    module.set_group_if_different(b_dest_item_path, group, False)
            if not os.path.islink(b_src_item_path) and os.path.isdir(b_src_item_path):
                shutil.copytree(b_src_item_path, b_dest_item_path, symlinks=not local_follow)
                chown_recursive(b_dest_item_path, module)
            changed = True
    return changed
def copy_common_dirs(src, dest, module):
    changed = False
    common_dirs = filecmp.dircmp(src, dest).common_dirs
    for item in common_dirs:
        src_item_path = os.path.join(src, item)
        dest_item_path = os.path.join(dest, item)
        b_src_item_path = to_bytes(src_item_path, errors='surrogate_or_strict')
        b_dest_item_path = to_bytes(dest_item_path, errors='surrogate_or_strict')
        diff_files_changed = copy_diff_files(b_src_item_path, b_dest_item_path, module)
        left_only_changed = copy_left_only(b_src_item_path, b_dest_item_path, module)
        if diff_files_changed or left_only_changed:
            changed = True
        
        changed = changed or copy_common_dirs(os.path.join(src, item), os.path.join(dest, item), module)
    return changed
def main():