### 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
self._loader.set_basedir(play._included_path)
                    else:
                        self._loader.set_basedir(pb._basedir)
                    
                    self._inventory.remove_restriction()
                    
                    all_vars = self._variable_manager.get_vars(play=play)
                    templar = Templar(loader=self._loader, variables=all_vars)
                    setattr(play, 'vars_prompt', templar.template(play.vars_prompt))
                    
                    if play.vars_prompt:
                        for var in play.vars_prompt:
                            vname = var['name']
                            prompt = var.get("prompt", vname)
                            default = var.get("default", None)
                            private = boolean(var.get("private", True))
                            confirm = boolean(var.get("confirm", False))
                            encrypt = var.get("encrypt", None)
                            salt_size = var.get("salt_size", None)
                            salt = var.get("salt", None)
                            unsafe = var.get("unsafe", None)
                            if vname not in self._variable_manager.extra_vars:
                                if self._tqm:
                                    self._tqm.send_callback('v2_playbook_on_vars_prompt', vname, private, prompt, encrypt, confirm, salt_size, salt,
                                                            default, unsafe)
                                    play.vars[vname] = display.do_var_prompt(vname, private, prompt, encrypt, confirm, salt_size, salt, default, unsafe)
                                else:  
                                    play.vars[vname] = default
                    
                    all_vars = self._variable_manager.get_vars(play=play)