Frontpanel USB3 best continuous speed transfer method

I am using a USB3 device for continuous data input output
Using windows 7
Maximum throughput looks fine. When I want to stream around 100Mbyte/second (both ways) I am a little afraid about gaps when reading large arrays.
(the data produces and consumed is at a fixed rate and cannot be throttled)
When one readfrompipeout returns and a new one needs to be called there is a short time without data-transfers.
As far as I know there are no asynchronous frontpanel calls , just synchronous ones.
I can see three strategies to handle these pauses.
1.Use FiFo’s within the lx45 FPGA and hoping the amount of buffering is enough to bridge the time-gap
2. Use the internal DRAM as a input/ouput Fifo of 64M
3. Use multiple pipes , distribute the data across the pipes and then read for instance 4 pipes in parallel in 4 separate threads
Is there any preference (or experience) with one of these strategies ?

Without a doubt, the suggested method is your #2 - use internal DRAM as FIFOs. Windows, Linux, and Mac OS X are not real time operating systems and any number of things can cause hiccups. The surest way to avoid these hiccups from affecting your data integrity is to provide data buffers where performance can be guaranteed and this is at the FPGA.

We would also like to caution you on #3. Access to the FrontPanel device is not thread safe. Multiple pipes occurring simultaneously is not supported as the overlapping API calls could (very probably) disrupt the device state and things would get confused.