### 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
mode:
    description:
    - The permissions of the destination file or directory.
    - For those used to C(/usr/bin/chmod) remember that modes are actually octal numbers.
      You must either add a leading zero so that Ansible's YAML parser knows it is an octal number
      (like C(0644) or C(01777)) or quote it (like C('644') or C('1777')) so Ansible receives a string
      and can do its own conversion from string into number. Giving Ansible a number without following
      one of these rules will end up with a decimal number which will have unexpected results.
    - As of Ansible 1.8, the mode may be specified as a symbolic mode (for example, C(u+rwx) or C(u=rw,g=r,o=r)).
    - As of Ansible 2.3, the mode may also be the special string C(preserve).
    - C(preserve) means that the file will be given the same permissions as the source file.
    - When doing a recursive copy, see also C(directory_mode).
    - If C(mode) is not specified and the destination file B(does not) exist, the default C(umask) on the system will be used
      when setting the mode for the newly created file.
    - If C(mode) is not specified and the destination file B(does) exist, the mode of the existing file will be used.
    - Specifying C(mode) is the best way to ensure files are created with the correct permissions.
      See CVE-2020-1736 for further details.
  directory_mode:
    description:
    - When doing a recursive copy set the mode for the directories.
    - If this is not set we will use the system defaults.
    - The mode is only set on directories which are newly created, and will not affect those that already existed.
    type: raw
    version_added: '1.5'
  remote_src:
    description:
    - Influence whether C(src) needs to be transferred or already is present remotely.
    - If C(no), it will search for C(src) on the controller node.
    - If C(yes) it will search for C(src) on the managed (remote) node.
    - C(remote_src) supports recursive copying as of version 2.8.