RE: Difference between POLLING & INTERRUPT ?
As for MCHPFSUSB v2.5, USB_INTERRUPT has no relation to USB bandwidth on the endpoints other than default one. Bulk and interrupt endpoints are handled in polling, either USB_INTERRUPT is enabled or not.
When USB_INTERRUPT is enabled, USBDeviceTasks() is called from USB interrupt. And then, you are free from the requirement of 100 us polling interval on the superloop in main().