### 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
if gotit is not None:
                    methods.append(gotit)
            
            new_args = []
            
            
            
            is_implicit_task = False
            for arg in args:
                
                if isinstance(arg, TaskResult):
                    new_args.append(arg.clean_copy())
                
                
                else:
                    new_args.append(arg)
                if isinstance(arg, Task) and arg.implicit:
                    is_implicit_task = True
            if is_implicit_task and not wants_implicit_tasks:
                continue
            for method in methods:
                try:
                    method(*new_args, **kwargs)
                except Exception as e:
                    
                    display.warning(u"Failure using method (%s) in callback plugin (%s): %s" % (to_text(method_name), to_text(callback_plugin), to_text(e)))
                    from traceback import format_tb
                    from sys import exc_info
                    display.vvv('Callback Exception: \n' + ' '.join(format_tb(exc_info()[2])))