Ok, the problem is straightforward: fport_input_waiting is using select with a predefined SELECT_SET_SIZE of 1024. Although guile does not see the many files used by the applications, it may ends up with a file descriptor whose number is bigger than that. Then the select will block forever.
Increasing SELECT_SET_SIZE will not do it, since the fd set must not be bigger than FD_SETSIZE(=1024 on my box) anyway. I will try to use the alternative (IOCTL). Nobody's planned to replace select by ppoll yet? :) If I end up doing it, interrested in a patch?