### 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
services = {}
        self.rcctl_path = self.module.get_bin_path("rcctl")
        if self.rcctl_path is None:
            return None
        for svc in self.query_rcctl('all'):
            services[svc] = {'name': svc, 'source': 'rcctl'}
        for svc in self.query_rcctl('on'):
            services[svc].update({'status': 'enabled'})
        for svc in self.query_rcctl('started'):
            services[svc].update({'state': 'running'})
        
        [services[svc].update({'status': 'disabled'}) for svc in services if services[svc].get('status') is None]
        
        [services[svc].update({'state': 'stopped'}) for svc in services if services[svc].get('state') is None]
        
        for svc in self.query_rcctl('failed'):
            services[svc].update({'state': 'failed'})
        return services
def main():