I finally gave up my best intentions about using async usb request, I keep that approach for IN endpoints but I am now using a sync approach to OUT endpoints and it is working much better now