### 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
or os.getpgrp() != os.tcgetpgrp(self._stdin_fd)
        ):
            raise AnsiblePromptNoninteractive('stdin is not interactive')
        
        
        
        
        
        
        
        
        
        self.display(msg)
        result = b''
        with self._lock:
            original_stdin_settings = termios.tcgetattr(self._stdin_fd)
            try:
                setup_prompt(self._stdin_fd, self._stdout_fd, seconds, not private)
                
                
                termios.tcflush(self._stdin, termios.TCIFLUSH)
                
                return self._read_non_blocking_stdin(echo=not private, seconds=seconds, interrupt_input=interrupt_input, complete_input=complete_input)
            finally:
                
                termios.tcsetattr(self._stdin_fd, termios.TCSADRAIN, original_stdin_settings)
    def _read_non_blocking_stdin(