<!--- Verify first that your issue is not already reported on GitHub -->
<!--- Also test if the latest release and devel branch are affected too -->
<!--- Complete *all* sections as described, this form is processed automatically -->

##### SUMMARY
In some cases of nesting `block`s/`import_tasks`' the `fail` module interrupts the Ansible execution and disregards `always` blocks.

##### ISSUE TYPE
- Bug Report

##### COMPONENT NAME
block import_tasks

##### ANSIBLE VERSION
<!--- Paste verbatim output from "ansible --version" between quotes -->
```paste below
ansible 2.9.15
  config file = <...hidden...>/ansible.cfg
  configured module search path = [u'/home/XXX/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /home/XXX/venv/lib/python2.7/site-packages/ansible
  executable location = /home/XXX/venv/bin/ansible
  python version = 2.7.18rc1 (default, Apr  7 2020, 12:05:55) [GCC 9.3.0]
```

##### CONFIGURATION
<!--- Paste verbatim output from "ansible-config dump --only-changed" between quotes -->
```paste below
ANSIBLE_NOCOWS(<...hidden...>/ansible.cfg) = True
ANY_ERRORS_FATAL(<...hidden...>/ansible.cfg) = True
```

##### STEPS TO REPRODUCE
<!--- Describe exactly how to reproduce the problem, using a minimal test-case -->

<!--- Paste example playbooks or commands between quotes below -->
Create a following file structure:

File: play.yml
```yaml
- hosts: all
  gather_facts: no
  tasks:
  - block:
    - import_tasks: tasks.yml
    always:
      #- debug: msg="First"
      - block:
        - debug: msg="Second"
```
File: tasks.yml
```yaml
- fail: msg="Fail as expected"
```

<!--- HINT: You can paste gist.github.com links for larger files -->

##### EXPECTED RESULTS
<!--- Describe what you expected to happen when running the steps above -->
First, failure message is printed.
Then, debug "Second" is printed.

##### ACTUAL RESULTS
<!--- Describe what actually happened. If possible run with extra verbosity (-vvvv) -->
Failure message is printed.
Debug "second" is **not** printed.
<!--- Paste verbatim command output between quotes -->
```paste below
$ ansible-playbook -i localhost, -c local ../../play.yml 
PLAY [all] ********************************************************************************************************************************************************************************************************

TASK [fail] *******************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Fail as expected"}

NO MORE HOSTS LEFT ************************************************************************************************************************************************************************************************

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

```
##### ADDITIONAL INFORMATION
It seems to appear only if `block` is a first element in `always` dictionary. For example in such case:
 File: play.yml
```yaml
- hosts: all
  gather_facts: no
  tasks:
  - block:
    - import_tasks: tasks.yml
    always:
      - debug: msg="First"
      - block:
        - debug: msg="Second"
```
File: tasks.yml
```yaml
- fail: msg="Fail as expected"
```
Everything works as expected and both outer debug and inner debug get's printed:
```
$ ansible-playbook -i localhost, -c local ../../play.yml 
PLAY [all] ********************************************************************************************************************************************************************************************************

TASK [fail] *******************************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "msg": "Fail as expected"}

TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "First"
}

TASK [debug] ******************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "Second"
}

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

short_description: Executes tasks in a linear fashion
    description:
        - Task execution is in lockstep per host batch as defined by C(serial) (default all).
          Up to the fork limit of hosts will execute each task at the same time and then
          the next series of hosts until the batch is done, before going on to the next task.
    version_added: "2.0"
    notes:
     - This was the default Ansible behaviour before 'strategy plugins' were introduced in 2.0.
    author: Ansible Core Team
'''
from ansible import constants as C
from ansible.errors import AnsibleError, AnsibleAssertionError, AnsibleParserError
from ansible.executor.play_iterator import IteratingStates, FailedStates
from ansible.module_utils.common.text.converters import to_text
from ansible.playbook.handler import Handler
from ansible.playbook.included_file import IncludedFile
from ansible.playbook.task import Task
from ansible.plugins.loader import action_loader
from ansible.plugins.strategy import StrategyBase
from ansible.template import Templar
from ansible.utils.display import Display
display = Display()
class StrategyModule(StrategyBase):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        
        self._in_handlers = False
    def _get_next_task_lockstep(self, hosts, iterator):
        '''
        Returns a list of (host, task) tuples, where the task may