*edit* Found this bit from the OTG_FS_DIEPTSIZx description:
XFRSIZ: Transfer size
This field contains the transfer size in bytes for the current endpoint. The core only interrupts
the application after it has exhausted the transfer size amount of data. The transfer size can
be set to the maximum packet size of the endpoint, to be interrupted at the end of each
packet.
I'm not sure if I tried that along the way...