Ваще, имхо, открывать инфракрасный порт нада с параметром PSP_O_NOWAIT
т.е. так -
irdafd = sceIoOpen("irda0:", PSP_O_RDWR | PSP_O_NOWAIT, 0);
А то есть подозрение, все твои паузы контроллер ИК-порта переждал в таймауте. А так можно надеяца поймать паузу за хвост...
Хотя конечно муть всё это...