Andrew,
I'm not very familiar with the boot loader itself, but I am familiar with USB.
I don't think you have to send 1024 bytes.
1024 is the maximum data size of a report descriptor. It is not the Max Packet Size.
MaxPacketSize is the Max size of a single packet. This max size depends on the speed and endpoint type.
For a control endpoint (this is where the report descriptor is transferred), the MaxPacketSize is 64 bytes for high speed, 8, 16 ,32 or 64 bytes for full speed and 8 bytes for low speed.
So, to transfer 1024 bytes on a high-speed control endpoint, you need 1024/64 = 16 packets.
All packets, except the last packet of the transfer must be MaxPacketSize long because a short packet indicates the end of the transfer.
Ex. To transfer 253 bytes you need 4 packets. Three of 64 bytes followed by one with 61 bytes. The 61 byte packet is a short packet and is the last packet of the transfer.
Note that a device reports its MaxPacketSize in the report descriptor. It is the reported size that the host must use for MaxPacketSize.
Regards,
Richard