Hey BigMac!
Just perfect mate! Problem solved.
The FTDI chip sends the data to the PC under 2 conditions only:
1) If there was a "timeout" of an internal clk and the number of bytes on the queue is lower then 64;
or
2) When the number of bytes reaches the limit specified by the "USB Block Request".
This by default is set to 4096 Bytes.
Being known that in every 64 Bytes, 2 of them are USB headers, we have 128 bytes in these 4096 that aren't "real data".. So 4096 - 128 = 3968, exactly what I was reading before.
Now I've set this size to 256, and the reading is being done in real time:
ftStatus = FT_SetUSBParameters (ftHandle, 256, 0);
As simple as that.
Thanks mate,
Cheers,
Ed.