Now, the problem: I need to stream the TS generated by the board, hence
it is _very important_ to read the packets containing the PCR "at the
correct time".
400ms...sounds like it's waiting to send you packats until it has a fuly 12-frame GOP to me. There may not be any way around that. It's perfectly reasonable for an MPEG encoder to deal in full GOPs. If you need exact per-frame timing, MPEG is not the right tool.