FIFO - это проблема. Читайте вместо сокета. Это намного лучше подойдет для модели Twisted, основанной на событиях. Попытка сделать что-то вне контроля реактора обычно является неправильным подходом.
---- обновление на основе обратной связи о том, что fifo является внешним ограничением, которого нельзя избежать ----
ОК, центральная проблема заключается в том, что вы не можете писать код в основном (и единственном) потоке вашего приложения Twisted, которое блокирует вызовы чтения для fifo. Это приведет к остановке всего приложения, если нечего читать. Таким образом, вы либо смотрите на чтение fifo асинхронно, либо создаете отдельный поток для его чтения, либо разбиваете приложение на две части.
Последний вариант является самым простым - измените приложение Twisted, чтобы оно слушало сокет, и напишите отдельное маленькое приложение «пересылка», которое выполняется в простом цикле, читая fifo и записывая все, что слышит, в сокет. 1007 *