### Summary

In Ansible core 2.11.6 environment, `end_play` will exit the current play and continue to run the following plays. While in Ansible core 2.12.1 environment, `end_play` will exit the entire playbook. Is this the expected result of the change? Thanks.

### Issue Type

Bug Report

### Component Name

meta

### Ansible Version

```console
$ ansible --version
ansible [core 2.12.1]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.12 (default, Dec 12 2021, 11:39:22) [GCC 7.3.0]
  jinja version = 3.0.3
  libyaml = True
```


### Configuration

```console
$ ansible-config dump --only-changed
No changes.
```


### OS / Environment

Ubuntu 18.04

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
- name: play1
  hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: "play 1 task 1"
    - meta: end_play
    - debug:
        msg: "play 1 task 2"

- name: play2
  hosts: localhost
  gather_facts: no
  tasks:
    - debug:
        msg: "play 2 task 1"
    - debug:
        msg: "play 2 task 2"
```


### Expected Results

The task in the first play not executed after `end_play` and tasks in play 2 are executed.

### Actual Results

```console
PLAYBOOK: test.yml ***********************************************************************************************************************
2 plays in test.yml

PLAY [play1] *****************************************************************************************************************************
META: ran handlers

TASK [debug] *****************************************************************************************************************************
task path: /root/workspace/test_yml/test_end_play/test.yml:5
ok: [localhost] => {
    "msg": "play 1 task 1"
}

TASK [meta] ******************************************************************************************************************************
task path: /root/workspace/test_yml/test_end_play/test.yml:7
META: ending play

PLAY RECAP *******************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0 
```
While in Ansible core 2.11.6 environment:
```
PLAYBOOK: test.yml ***********************************************************************************************************************
2 plays in test.yml

PLAY [play1] *****************************************************************************************************************************
META: ran handlers

TASK [debug] *****************************************************************************************************************************
task path: /root/test_yml/test_end_play/test.yml:5
ok: [localhost] => {
    "msg": "play 1 task 1"
}

TASK [meta] ******************************************************************************************************************************
task path: /root/test_yml/test_end_play/test.yml:7
META: ending play

PLAY [play2] *****************************************************************************************************************************
META: ran handlers

TASK [debug] *****************************************************************************************************************************
task path: /root/test_yml/test_end_play/test.yml:15
ok: [localhost] => {
    "msg": "play 2 task 1"
}

TASK [debug] *****************************************************************************************************************************
task path: /root/test_yml/test_end_play/test.yml:18
ok: [localhost] => {
    "msg": "play 2 task 2"
}
META: ran handlers
META: ran handlers

PLAY RECAP *******************************************************************************************************************************
localhost                  : ok=3    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0  
```
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
list(become_loader.all(class_only=True))
            for playbook in self._playbooks:
                
                resource = _get_collection_playbook_path(playbook)
                if resource is not None:
                    playbook_path = resource[1]
                    playbook_collection = resource[2]
                else:
                    playbook_path = playbook
                    
                    playbook_collection = _get_collection_name_from_path(playbook)
                if playbook_collection:
                    display.warning("running playbook inside collection {0}".format(playbook_collection))
                    AnsibleCollectionConfig.default_collection = playbook_collection
                else:
                    AnsibleCollectionConfig.default_collection = None
                pb = Playbook.load(playbook_path, variable_manager=self._variable_manager, loader=self._loader)
                
                if self._tqm is None:  
                    entry = {'playbook': playbook_path}
                    entry['plays'] = []
                else:
                    
                    self._tqm.load_callbacks()
                    self._tqm.send_callback('v2_playbook_on_start', pb)
                i = 1
                plays = pb.get_plays()
                display.vv(u'%d plays in %s' % (len(plays), to_text(playbook_path)))
                for play in plays:
                    if play._included_path is not None: