### Summary

service_facts is not accurately reporting systemd-modules-load.service status if the service fails to load a module. The service will result in an `Active: failed` state on the machine but Ansible will report `status: static` state in service_facts.

### Issue Type

Bug Report

### Component Name

service_facts

### Ansible Version

```console
$ ansible --version
ansible 2.9.23
  config file = None
  configured module search path = ['/Users/person/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /Users/person/.virtualenvs/msc_hpc/lib/python3.10/site-packages/ansible
  executable location = /Users/person/.virtualenvs/msc_hpc/bin/ansible
  python version = 3.10.0b1 (default, Jun  7 2021, 15:45:11) [Clang 12.0.0 (clang-1200.0.32.29)]
```


### Configuration

```console
$ ansible-config dump --only-changed
```


### OS / Environment

Centos 7

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
- Create a phony module and reload the kernel modules:
```shell
cat 'bar' > /etc/modules-load.d/foo.conf
systemctl restart systemd-modules-load.service
```

- Create a simple playbook that gathers service_facts and ouputs the results
```yaml
- name: Gather service facts.
  service_facts:

- name: Verify systemd-modules-load.service is in happy state.
  debug:
    msg: '{{ ansible_facts.services["systemd-modules-load.service"] }}'
```


### Expected Results

- Running the status of the service of the machine shows that it `failed` to run due to an invalid module configuration.
```shell
systemctl status systemd-modules-load.service
```

```shell
● systemd-modules-load.service - Load Kernel Modules
   Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2021-07-15 22:39:24 UTC; 26min ago
     Docs: man:systemd-modules-load.service(8)
           man:modules-load.d(5)
  Process: 150775 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
 Main PID: 150775 (code=exited, status=1/FAILURE)
```

### Actual Results

```console
- Ansible fails to detect the `failed` status of the service and outputs incorrect results.

TASK [test_msc_hpc : Verify systemd-modules-load.service is started.] **********
 ok: [hpc-test] =>
    msg:
      name: systemd-modules-load.service
      source: systemd
      state: stopped
      status: static
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
systemctl_path = self.module.get_bin_path("systemctl", opt_dirs=["/usr/bin", "/usr/local/bin"])
        if systemctl_path is None:
            return None
        rc, stdout, stderr = self.module.run_command("%s list-units --no-pager --type service --all" % systemctl_path, use_unsafe_shell=True)
        for line in [svc_line for svc_line in stdout.split('\n') if '.service' in svc_line and 'not-found' not in svc_line]:
            service_name = line.split()[0]
            if "running" in line:
                state_val = "running"
            else:
                if 'failed' in line:
                    service_name = line.split()[1]
                state_val = "stopped"
            services[service_name] = {"name": service_name, "state": state_val, "status": "unknown", "source": "systemd"}
        rc, stdout, stderr = self.module.run_command("%s list-unit-files --no-pager --type service --all" % systemctl_path, use_unsafe_shell=True)
        for line in [svc_line for svc_line in stdout.split('\n') if '.service' in svc_line and 'not-found' not in svc_line]:
            
            try:
                service_name, status_val = line.split()[:2]
            except IndexError:
                self.module.fail_json(msg="Malformed output discovered from systemd list-unit-files: {0}".format(line))
            if service_name not in services:
                rc, stdout, stderr = self.module.run_command("%s show %s --property=ActiveState" % (systemctl_path, service_name), use_unsafe_shell=True)
                state = 'unknown'
                if not rc and stdout != '':
                    state = stdout.replace('ActiveState=', '').rstrip()
                services[service_name] = {"name": service_name, "state": state, "status": status_val, "source": "systemd"}
            else:
                services[service_name]["status"] = status_val
        return services
class AIXScanService(BaseService):