I think, the USB-specification only allows EP0-sizes of:
LowSpeed = 8 Bytes
FullSpeed = 8, 16, 32, or 64 Bytes
HighSpeed = 64 Bytes
SuperSpeed = 512 Bytes
You should be able to send 65536 bytes per vendor request in HS and SS don't know what this is in FS. The host controller and driver in the computer will then divide this into the required USB packet sizes, 64 or 512. At the device end you will need a buffer big enough to hold the maximum transfer or if the buffer is smaller than the maximum transfer you will need some way to signal the host to hold off tranfers until the buffer is free again.