### Summary

 When we updated `Display` to proxy over the queue for dispatch by the main process in https://github.com/ansible/ansible/pull/77056, we ended up losing some context, since we only proxy the `Display.display` method, and not all methods individually.

We need to add some functionality to `Display` to preserve this context, whether that means shipping additional information across the queue, or proxying all methods instead of just `Display.display`.

This has impacts on ansible-runner, and input should be taken to evaluate the best option.

### Issue Type

Feature Idea

### Component Name

lib/ansible/utils/display.py

### Additional Information

TBD

### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
self._tqm._stats.increment('failures', original_host.name)
                else:
                    self._tqm._stats.increment('ok', original_host.name)
                    self._tqm._stats.increment('ignored', original_host.name)
                    if 'changed' in task_result._result and task_result._result['changed']:
                        self._tqm._stats.increment('changed', original_host.name)
                self._tqm.send_callback('v2_runner_on_failed', task_result, ignore_errors=ignore_errors)
            elif task_result.is_unreachable():
                ignore_unreachable = original_task.ignore_unreachable
                if not ignore_unreachable:
                    self._tqm._unreachable_hosts[original_host.name] = True
                    iterator._play._removed_hosts.append(original_host.name)
                    self._tqm._stats.increment('dark', original_host.name)
                else:
                    self._tqm._stats.increment('ok', original_host.name)
                    self._tqm._stats.increment('ignored', original_host.name)
                self._tqm.send_callback('v2_runner_on_unreachable', task_result)
            elif task_result.is_skipped():
                self._tqm._stats.increment('skipped', original_host.name)
                self._tqm.send_callback('v2_runner_on_skipped', task_result)
            else:
                role_ran = True
                if original_task.loop:
                    
                    
                    result_items = task_result._result.get('results', [])
                else:
                    result_items = [task_result._result]
                for result_item in result_items:
                    if '_ansible_notify' in result_item and task_result.is_changed():