### Summary

When `hardware/linux.py` is gathering facts, if `get_mount_info()` (inside `get_mount_facts()`) fails and `res.successful()` returns false, then it tries to call `res.get()` on the result:

https://github.com/ansible/ansible/blob/d1c49f2e1c991b56060267b38751dad4ba703bdb/lib/ansible/module_utils/facts/hardware/linux.py#L576-L577

However, `multiprocessing.pool.AsyncResult.get()` is defined to reraise the exception, not return it: https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.AsyncResult.get

This causes the entire `hardware` fact gathering to fail due to the reraised exception. Additionally, this exception gets eaten by the following handler. The `sys.stderr.write` doesn't seem to print to the controller's terminal. I had to remove it in order to see the stack trace.

https://github.com/ansible/ansible/blob/d1c49f2e1c991b56060267b38751dad4ba703bdb/lib/ansible/module_utils/facts/ansible_collector.py#L75-L77

The end result is that whenever `get_mount_info()` on the async pool fails, the exception is reraised outside of the `multiprocessing` context and _all_ of the `hardware/*.py` facts get silently dropped.

### Issue Type

Bug Report

### Component Name

facts

### Ansible Version

```console
ansible 2.10.9
  config file = None
  configured module search path = ['/home/jenkins/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.8/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 3.8.10 (default, May  6 2021, 00:05:59) [GCC 10.2.1 20201203]
```


### Configuration

```console
(no output)
```


### OS / Environment

Controller:
* Alpine Linux 3.13.5
* Python 3.8

All target hosts:
* CentOS 7
* Python 2.7


### Steps to Reproduce

```yaml
    - name: Gather hardware facts
      setup:
        gather_subset: '!all,!min,hardware'

    - name: DEBUG - Dump host vars state if fact gathering does not include mount information
      debug:
        var: ansible_facts
      when: ansible_mounts is not defined
```
With this playbook, it may take many reruns to reproduce the issue (need `get_mount_info()` to fail). It may be easier to simply edit `hardware/linux.py` to make `get_mount_info()` always throw an exception since the issue is in the error handling code.

### Expected Results

When `get_mount_info()` fails, the exception information should show up in the `['info']['note']` field of the mountpoint fact. (Additionally, I think that any hard failures during fact gathering should have some error printed to the screen instead of being silently ignored.)

### Actual Results

```console
When `get_mount_info()` fails, all `hardware` facts are silently ignored/dropped.
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
cpu_facts['processor_cores'] = socket_values[0]
                else:
                    cpu_facts['processor_cores'] = 1
                core_values = list(cores.values())
                if core_values:
                    cpu_facts['processor_threads_per_core'] = core_values[0] // cpu_facts['processor_cores']
                else:
                    cpu_facts['processor_threads_per_core'] = 1 // cpu_facts['processor_cores']
                cpu_facts['processor_vcpus'] = (cpu_facts['processor_threads_per_core'] *
                                                cpu_facts['processor_count'] * cpu_facts['processor_cores'])
                
                
                
                cpu_facts['processor_nproc'] = processor_occurence
                try:
                    cpu_facts['processor_nproc'] = len(
                        os.sched_getaffinity(0)
                    )
                except AttributeError:
                    
                    try:
                        cmd = get_bin_path('nproc')
                    except ValueError:
                        pass
                    else:
                        rc, out, _err = self.module.run_command(cmd)
                        if rc == 0:
                            cpu_facts['processor_nproc'] = int(out)
        return cpu_facts
    def get_dmi_facts(self):