### Summary

When a task is named with the word meta (like `- name: "meta"`), the task fails with the following error : 
```
ERROR! Unexpected Exception, this is probably a bug: '_raw_params'
```


### Issue Type

Bug Report

### Component Name

all

### Ansible Version

```console
$ ansible --version
ansible 2.10.8
  config file = /home/utilisateur/ansible/prj_chainage_traitement/ansible.cfg
  configured module search path = ['/home/utilisateur/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
```



### OS / Environment

Linux Debian 11.1

### Steps to Reproduce

The following playbook reproduces this issue : 
```yaml
- hosts: localhost
  gather_facts: no
  connection: localhost
  tasks:
    - name: "meta"
      debug:
        msg: "abcdefgh"
```
 

### Expected Results

You should obtain : 
```
TASK [meta] 
ok: [localhost] => {
	"msg": "abcdefgh"
}
``` 

When name is changed (ex.: `- name: "meta"`), there is no error.

Ansible should generate an error when the user tries to name a task `meta`.

### Actual Results


The following error is returned : 

```console
PLAY [localhost] ***********
ERROR! Unexpected Exception, this is probably a bug: '_raw_params'
to see the full traceback, use -vvv
```

With verbose mode, a Python exception is returned : 
```
PLAY [localhost] *******************
META: ran handlers
ERROR! Unexpected Exception, this is probably a bug: '_raw_params'
the full traceback was:

Traceback (most recent call last):
  File "/usr/bin/ansible-playbook", line 123, in <module>
	exit_code = cli.run()
  File "/usr/lib/python3/dist-packages/ansible/cli/playbook.py", line 129, in run
	results = pbex.run()
  File "/usr/lib/python3/dist-packages/ansible/executor/playbook_executor.py", line 169, in run
	result = self._tqm.run(play=play)
  File "/usr/lib/python3/dist-packages/ansible/executor/task_queue_manager.py", line 281, in run
	play_return = strategy.run(iterator, play_context)
  File "/usr/lib/python3/dist-packages/ansible/plugins/strategy/linear.py", line 224, in run
	host_tasks = self._get_next_task_lockstep(hosts_left, iterator)
  File "/usr/lib/python3/dist-packages/ansible/plugins/strategy/linear.py", line 97, in _get_next_task_lockstep
	host_tasks[host.name] = iterator.get_next_task_for_host(host, peek=True)
  File "/usr/lib/python3/dist-packages/ansible/executor/play_iterator.py", line 253, in get_next_task_for_host
	display.debug(" ^ task is: %s" % task)
  File "/usr/lib/python3/dist-packages/ansible/playbook/task.py", line 156, in __repr__
	return "TASK: meta (%s)" % self.args['_raw_params']
KeyError: '_raw_params'
```
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
from ansible.playbook.task_include import TaskInclude
        from ansible.playbook.handler_task_include import HandlerTaskInclude
        parent_data = data.get('parent', None)
        if parent_data:
            parent_type = data.get('parent_type')
            if parent_type == 'Block':
                p = Block()
            elif parent_type == 'TaskInclude':
                p = TaskInclude()
            elif parent_type == 'HandlerTaskInclude':
                p = HandlerTaskInclude()
            p.deserialize(parent_data)
            self._parent = p
            del data['parent']
        role_data = data.get('role')
        if role_data:
            r = Role()
            r.deserialize(role_data)
            self._role = r
            del data['role']
        self.implicit = data.get('implicit', False)
        self.resolved_action = data.get('resolved_action')
        super(Task, self).deserialize(data)
    def set_loader(self, loader):