### Summary

When include_role is the last task in an "always" block after a failure, the role does not get executed. When an additional task is after the include_role, both the role and the last task get executed.

I found that this only happens with the free strategy and not the linear strategy.

### Issue Type

Bug Report

### Component Name

ansible/plugins/strategy/free.py

### Ansible Version

```console
$ ansible --version
ansible [core 2.11.0]
  config file = /home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg
  configured module search path = ['/home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/modules', '/usr/share/ansible/collections/ansible_collections/tfdm/utils/plugins/modules', '/home/users/gbg/*****/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/site-packages/ansible
  ansible collection location = /home/users/gbg/*****/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.3 (default, Aug 18 2020, 08:56:04) [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)]
  jinja version = 3.0.0
  libyaml = True
```


### Configuration

```console
$ ansible-config dump --only-changed
ANSIBLE_PIPELINING(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = True
BECOME_ALLOW_SAME_USER(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = True
BECOME_PLUGIN_PATH(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/become', '/usr/share/ansible/collections/ansible_collections/tfdm/utils/plugins/becom>
CALLBACKS_ENABLED(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['tfdm.utils.tfdm_log', 'tfdm.utils.profile_tasks_custom']
DEFAULT_ACTION_PLUGIN_PATH(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/action', '/usr/share/ansible/collections/ansible_collections/tfdm/utils/plugi>
DEFAULT_FILTER_PLUGIN_PATH(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/filter', '/usr/share/ansible/collections/ansible_collections/tfdm/utils/plugi>
DEFAULT_FORKS(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = 100
DEFAULT_HOST_LIST(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/inventory.yml']
DEFAULT_LOAD_CALLBACK_PLUGINS(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = True
DEFAULT_LOCAL_TMP(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = /tmp/.ansible_*****/ansible-local-1796160cr3o3nna
DEFAULT_MODULE_PATH(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/modules', '/usr/share/ansible/collections/ansible_collections/tfdm/utils/plugins/mod>
DEFAULT_ROLES_PATH(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/roles', '/usr/share/ansible/tfdm_roles', '/home/users/gbg/*****/.ansible/roles', '/usr/share/ansible/roles', '/etc/ansible/roles']
DEFAULT_STDOUT_CALLBACK(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = tfdm.utils.yaml_custom
DEFAULT_STRATEGY(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = free
DEFAULT_TEST_PLUGIN_PATH(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['/home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/test', '/usr/share/ansible/collections/ansible_collections/tfdm/utils/plugins/t>
DEFAULT_VAULT_PASSWORD_FILE(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = /home/users/gbg/*****/git/config/ile/playbooks/tfdm_key
DIFF_ALWAYS(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = True
DIFF_CONTEXT(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = 0
DISPLAY_SKIPPED_HOSTS(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = False
DUPLICATE_YAML_DICT_KEY(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ignore
HOST_KEY_CHECKING(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = False
INTERPRETER_PYTHON(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = auto_silent
INVENTORY_CACHE_ENABLED(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = True
INVENTORY_ENABLED(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['tfdm.utils.tfdm_inventory', 'host_list', 'script', 'auto', 'yaml', 'ini']
LOCALHOST_WARNING(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = False
MAX_FILE_SIZE_FOR_DIFF(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = 10485760
VARIABLE_PLUGINS_ENABLED(/home/users/gbg/*****/git/config/ile/playbooks/ansible.cfg) = ['host_group_vars', 'tfdm.utils.tfdm_site_vars']
```


### OS / Environment

RHEL8.2

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
```yaml (paste below)
test.yml
---
- hosts: localhost
  gather_facts: False
  tasks:

    - block:
        - fail:
            msg: "Intentional failure"
      always:
        - debug:
            msg: "In the always block"

        - include_role:
            name: test_role

            #- debug:
            #msg: "After calling the role in the always block"
```

```
roles/test_role/tasks/main.yml
---

- debug:
    msg: "INSIDE THE ROLE"
```


### Expected Results

```
PLAY [localhost] ***************************************************************************************************************************************************************************************
Friday 03 September 2021  18:14:34 +0000 (0:00:00.147)       0:00:00.147 ******

TASK [fail] ********************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => changed=false
  msg: Intentional failure
Friday 03 September 2021  18:14:34 +0000 (0:00:00.026)       0:00:00.173 ******

TASK [debug] *******************************************************************************************************************************************************************************************
ok: [localhost] =>
  msg: In the always block
Friday 03 September 2021  18:14:34 +0000 (0:00:00.023)       0:00:00.197 ******

TASK [include_role : test_role] ************************************************************************************************************************************************************************
Friday 03 September 2021  18:14:34 +0000 (0:00:00.034)       0:00:00.232 ******

TASK [test_role : debug] *******************************************************************************************************************************************************************************
ok: [localhost] =>
  msg: INSIDE THE ROLE
Friday 03 September 2021  18:14:34 +0000 (0:00:00.032)       0:00:00.264 ******

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

### Actual Results

```console
PLAY [localhost] **************************************************************************************************************************************************************************************************************************************************************
Friday 03 September 2021  18:25:11 +0000 (0:00:00.144)       0:00:00.144 ******

TASK [fail] *******************************************************************************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => changed=false
  msg: Intentional failure
Friday 03 September 2021  18:25:11 +0000 (0:00:00.026)       0:00:00.171 ******

TASK [debug] ******************************************************************************************************************************************************************************************************************************************************************
ok: [localhost] =>
  msg: In the always block
Friday 03 September 2021  18:25:11 +0000 (0:00:00.024)       0:00:00.195 ******

TASK [include_role : test_role] ***********************************************************************************************************************************************************************************************************************************************

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

The last two tasks with ANSIBLE_DEBUG enabled:
```
TASK [debug] *******************************************************************
task path: /home/users/gbg/*****/git/config/ile/playbooks/test.yml:10
ok: [localhost] =>
  msg: In the always block
1796974 1630693258.82070: next free host: localhost
1796974 1630693258.82079: getting the next task for host localhost
1796974 1630693258.82087: done getting next task for host localhost
1796974 1630693258.82093:  ^ task is: TASK: include_role : test_role
1796974 1630693258.82098:  ^ state is: HOST STATE: block=2, task=1, rescue=0, always=2, run_state=ITERATING_ALWAYS, fail_state=FAILED_TASKS, pending_setup=False, tasks child state? (None), rescue child state? (None), always child state? (None), did rescue? False, did start at task? False
1796974 1630693258.82104 [localhost]: free host state: HOST STATE: block=2, task=1, rescue=0, always=2, run_state=ITERATING_ALWAYS, fail_state=FAILED_TASKS, pending_setup=False, tasks child state? (None), rescue child state? (None), always child state? (None), did rescue? False, did start at task? False
1796974 1630693258.82110 [localhost]: free host task: TASK: include_role : test_role
1796974 1630693258.82115 [localhost]: this host has work to do
1796974 1630693258.82119 [localhost]: getting variables
1796974 1630693258.82125: in VariableManager get_vars()
1796974 1630693258.82162: Calling all_inventory to load vars for localhost
1796974 1630693258.82173: Calling groups_inventory to load vars for localhost
1796974 1630693258.82186: Calling all_plugins_inventory to load vars for localhost
1796974 1630693258.82228: Loading VarsModule 'host_group_vars' from /usr/local/lib/python3.8/site-packages/ansible/plugins/vars/host_group_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82266: Loading VarsModule 'ansible_collections.tfdm.utils.plugins.vars.tfdm_site_vars' from /home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/vars/tfdm_site_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82314: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/dev_sites.yml
1796974 1630693258.82327: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/lab_to_rack_size_mapping.yml
1796974 1630693258.82341: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_adapter_networks.yml
1796974 1630693258.82351: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_facts.yml
1796974 1630693258.82363: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_facts_dev.yml
1796974 1630693258.82374: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_host_ids.yml
1796974 1630693258.82386: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_ipa_settings.yml
1796974 1630693258.82397: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_user_group_ids.yml
1796974 1630693258.82408: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vars.yml
1796974 1630693258.82417: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vault.yml
1796974 1630693258.82425: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vm_instances.yml
1796974 1630693258.82433: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vmware_module_defaults.yml
1796974 1630693258.82450: Loading data from /backups/vault/group_vars/all/vault.yml
1796974 1630693258.82460: Calling all_plugins_play to load vars for localhost
1796974 1630693258.82486: Loading VarsModule 'host_group_vars' from /usr/local/lib/python3.8/site-packages/ansible/plugins/vars/host_group_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82507: Loading VarsModule 'ansible_collections.tfdm.utils.plugins.vars.tfdm_site_vars' from /home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/vars/tfdm_site_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82539: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/dev_sites.yml
1796974 1630693258.82549: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/lab_to_rack_size_mapping.yml
1796974 1630693258.82558: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_adapter_networks.yml
1796974 1630693258.82566: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_facts.yml
1796974 1630693258.82574: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_facts_dev.yml
1796974 1630693258.82583: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_host_ids.yml
1796974 1630693258.82592: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_ipa_settings.yml
1796974 1630693258.82599: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/tfdm_user_group_ids.yml
1796974 1630693258.82606: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vars.yml
1796974 1630693258.82613: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vault.yml
1796974 1630693258.82620: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vm_instances.yml
1796974 1630693258.82627: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/all/vmware_module_defaults.yml
1796974 1630693258.82642: Loading data from /backups/vault/group_vars/all/vault.yml
1796974 1630693258.82652: Calling groups_plugins_inventory to load vars for localhost
1796974 1630693258.82678: Loading VarsModule 'host_group_vars' from /usr/local/lib/python3.8/site-packages/ansible/plugins/vars/host_group_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82701: Loading VarsModule 'ansible_collections.tfdm.utils.plugins.vars.tfdm_site_vars' from /home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/vars/tfdm_site_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82803: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/rhel/vars.yml
1796974 1630693258.82814: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/rhel/vault.yml
1796974 1630693258.82872: Loading data from /backups/vault/group_vars/rhel/vault.yml
1796974 1630693258.82891: Calling groups_plugins_play to load vars for localhost
1796974 1630693258.82916: Loading VarsModule 'host_group_vars' from /usr/local/lib/python3.8/site-packages/ansible/plugins/vars/host_group_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.82938: Loading VarsModule 'ansible_collections.tfdm.utils.plugins.vars.tfdm_site_vars' from /home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/vars/tfdm_site_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.83036: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/rhel/vars.yml
1796974 1630693258.83048: Loading data from /home/users/gbg/*****/git/config/ile/playbooks/group_vars/rhel/vault.yml
1796974 1630693258.83104: Loading data from /backups/vault/group_vars/rhel/vault.yml
1796974 1630693258.83149: Loading VarsModule 'host_group_vars' from /usr/local/lib/python3.8/site-packages/ansible/plugins/vars/host_group_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.83172: Loading VarsModule 'ansible_collections.tfdm.utils.plugins.vars.tfdm_site_vars' from /home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/vars/tfdm_site_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.83230: Loading VarsModule 'host_group_vars' from /usr/local/lib/python3.8/site-packages/ansible/plugins/vars/host_group_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.83253: Loading VarsModule 'ansible_collections.tfdm.utils.plugins.vars.tfdm_site_vars' from /home/users/gbg/*****/git/config/ile/playbooks/collections/ansible_collections/tfdm/utils/plugins/vars/tfdm_site_vars.py (found_in_cache=True, class_only=False)
1796974 1630693258.83339: done with get_vars()
1796974 1630693258.83358 [localhost]: done getting variables
1796974 1630693258.83369: getting the next task for host localhost
1796974 1630693258.83376: done getting next task for host localhost
1796974 1630693258.83384:  ^ task is: TASK: include_role : test_role
1796974 1630693258.83389:  ^ state is: HOST STATE: block=2, task=1, rescue=0, always=2, run_state=ITERATING_ALWAYS, fail_state=FAILED_TASKS, pending_setup=False, tasks child state? (None), rescue child state? (None), always child state? (None), did rescue? False, did start at task? False
1796974 1630693258.83417 [localhost]: done templating
Friday 03 September 2021  18:20:58 +0000 (0:00:00.035)       0:00:04.711 ******
1796974 1630693258.83447: entering _queue_task() for localhost/include_role
1796974 1630693258.83454: Creating lock for include_role
1796974 1630693258.83757: worker is 1 (out of 1 available)
1796974 1630693258.83830: exiting _queue_task() for localhost/include_role
1796994 1630693258.83931: running TaskExecutor() for localhost/TASK: include_role : test_role
1796994 1630693258.84035: in run() - task 00505600-0571-bb4d-838a-00000000025f
1796974 1630693258.84040: next free host: localhost
1796974 1630693258.84052: getting the next task for host localhost
1796994 1630693258.84060: variable 'ansible_search_path' from source: unknown
1796974 1630693258.84066: done getting next task for host localhost
1796974 1630693258.84071:  ^ task is: None
1796974 1630693258.84079:  ^ state is: HOST STATE: block=2, task=1, rescue=0, always=2, run_state=ITERATING_COMPLETE, fail_state=FAILED_TASKS, pending_setup=False, tasks child state? (None), rescue child state? (None), always child state? (None), did rescue? False, did start at task? False
1796974 1630693258.84088 [localhost]: free host state: HOST STATE: block=2, task=1, rescue=0, always=2, run_state=ITERATING_COMPLETE, fail_state=FAILED_TASKS, pending_setup=False, tasks child state? (None), rescue child state? (None), always child state? (None), did rescue? False, did start at task? False
1796974 1630693258.84093 [localhost]: free host task: None
1796994 1630693258.84100: calling self._execute()
1796994 1630693258.84162: variable 'ansible_connection' from source: host vars for 'localhost'
1796994 1630693258.84174: variable 'ansible_become' from source: group vars, precedence entry 'groups_plugins_play'
1796994 1630693258.84188: variable 'omit' from source: magic vars
1796974 1630693258.84213: waiting for pending results...
1796994 1630693258.84299: _execute() done
1796994 1630693258.84310: dumping result to json
1796994 1630693258.84317: done dumping result, returning
1796994 1630693258.84325: done running TaskExecutor() for localhost/TASK: include_role : test_role [00505600-0571-bb4d-838a-00000000025f]
1796994 1630693258.84343: sending task result for task 00505600-0571-bb4d-838a-00000000025f
1796994 1630693258.84396: done sending task result for task 00505600-0571-bb4d-838a-00000000025f
1796994 1630693258.84440: WORKER PROCESS EXITING

TASK [include_role : test_role] ************************************************
task path: /home/users/gbg/*****/git/config/ile/playbooks/test.yml:13
1796974 1630693258.84583: no more pending results, returning what we have
1796974 1630693258.84592: getting the next task for host localhost
1796974 1630693258.84599: done getting next task for host localhost
1796974 1630693258.84604:  ^ task is: None
1796974 1630693258.84609:  ^ state is: HOST STATE: block=2, task=1, rescue=0, always=2, run_state=ITERATING_COMPLETE, fail_state=FAILED_TASKS, pending_setup=False, tasks child state? (None), rescue child state? (None), always child state? (None), did rescue? False, did start at task? False
1796974 1630693258.84616: running handlers

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

1796974 1630693258.84748: RUNNING CLEANUP
```
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
#
#
#
#
from __future__ import (absolute_import, division, print_function)
__metaclass__ = type
DOCUMENTATION = '''
    name: free
    short_description: Executes tasks without waiting for all hosts
    description:
        - Task execution is as fast as possible per batch as defined by C(serial) (default all).
          Ansible will not wait for other hosts to finish the current task before queuing more tasks for other hosts.
          All hosts are still attempted for the current task, but it prevents blocking new tasks for hosts that have already finished.
        - With the free strategy, unlike the default linear strategy, a host that is slow or stuck on a specific task
          won't hold up the rest of the hosts and tasks.
    version_added: "2.0"
    author: Ansible Core Team
'''
import time
from ansible import constants as C
from ansible.errors import AnsibleError
from ansible.playbook.included_file import IncludedFile
from ansible.plugins.loader import action_loader
from ansible.plugins.strategy import StrategyBase
from ansible.template import Templar
from ansible.module_utils._text import to_text
from ansible.utils.display import Display
display = Display()
class StrategyModule(StrategyBase):