As I noted earlier in the series, attaching input queues puts you back into the world of coöperative multitasking, where the two attached threads need to work together to get anything done.
Back in the old 16-bit days, when input was synchronous, there was only one active window, only one focus window, only one window with capture, ...