Интересный вопрос, но боюсь, что все варианты будут костылями со своими недостатками. Судите сами: ввод-вывод должен быть заблокирован и одновременно не заблокирован (обычно так начинаются задачи в ТРИЗ, хе-хе).
Но нужно же предложить хоть один такой костыль. Это RDP. Локально комп заблокирован, но доступ по RDP есть. Основная задача работает на реальном железе, но управляющая задача (pyautogui) может крутиться на виртуальной машине и соединяться с основной по RDP. Ведь для управляллки скорость не критична? Но я не знаю возможностей pyautogui, надо разбираться, нет ли каких-то препятствий для такой схемы.