Thanks Martin! Taking in consideration what you said...
"One application design consideration would be, that usb functions like send() they schedule a transaction with the usb controller. After the transaction is scheduled they return immediately, but the actual transfer (USB master read from the source data buffer and write to USB bus) can occur at some time later, when usb controller has completed previous transfers. So, application should not change the data in the source buffer until they are really consumed by the usb controller."
We made the USB device send and then wait for a set_report from the USB Host before sending again. In this situation using a millisecond timer we received correct data back and forth in sometimes under a millisecond. Obviously we saw Error in _usb_host_recv_data: 81 (hex integer) from the beginning of the receive on the host side. Eventually the program stopped running, but the data was correct. Now with a 60+msecond delay in addition to receiving a set_report on the device side all data passes correctly, but we get the problem stated above. The _usb_host_recv_data: 81 (hex integer) on the 416 receive. I would think the executed transactions would eventually catch up to the scheduled transactions, but the error is consistant from 416 to 1000. My buffer only is going to 1000 at the moment. I will be taking a break on this for a bit because I have another fish to fry, but I wanted to update.