### 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
'''
        Run the given playbook, based on the settings in the play which
        may limit the runs to serialized groups, etc.
        '''
        result = 0
        entrylist = []
        entry = {}
        try:
            
            list(connection_loader.all(class_only=True))
            list(shell_loader.all(class_only=True))