Is there an USB 2 data transfer size limit?

Well, I’m not a USB protocol engineer but this document from the Intel EHCI USB Specification seems to suggest that the largest USB packet size that is allowable is 1024 bytes and the largest block of data that can be transferred in one go is 24576 bytes, as on page 35:

Seven page pointers are provided to support the expression of 8 isochronous transfers. The seven pointers allow for 3 (transactions) * 1024 (maximum packet size) * 8 (transaction records) (24576 bytes) to be moved with this data structure

So, it appears that any one USB transfer can consist of up to 24*1024 bytes of data at any one time.  That does not mean that you can’t store larger amounts of data, but that they are “chopped” up into segments of up to 24*1024 bytes.