I need to get a FT232H working with an ECP5 FPGA in Synchronous mode as a loopback device. My design has all inputs and outputs to/from the FT232H registered to improve timing, as all other designs I've found online. I'm using Manta to capture the FPGA's internal signals and on the PC side I have code that sets up eight 4KB buffers full of 33 byte long records that run from 0x00 to 0x21. To receive I use eight 512 bytes long buffers and I pass them all to libusb's asynchronous functions, running on Kubuntu 24.04.1.
My problem is that after some packets I start getting errors in the data, like shown below:

As shown, instead of getting ...0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D... I'm getting ...0x06, 0x07, 0x09, 0x0A, 0x08, 0x0C, 0x0D... I know that the problem is due to my design not being able to handle something that I was not expecting; the TXE# goes high for a single clock cycle, as shown below:

(signals starting with 'r' are registered inputs and with 'u' are copies of the registered outputs)
But if indeed the TXE# can go high for a single clock cycle that makes it impossible to register the inputs and outputs of the FT232H, as by the time the internal logic reads the TXE# (one cycle after it happened) its already too late for pull WR# high to stop the transmission into the FIFO, since it would take another cycle for the output to switch, by which time the FT232H would have already captured another byte, as seen in the image above.
Is this one-cycle-high normal behaviour or is this a clone that does not implement the FIFO Sync mode properly ?