I'm sure that this is a hopelessly naive thought, but presumably not all of the pages which are in cache waiting to be written out to the USB stick are actually actively being written at any given time. Can't they be moved elsewhere in the meantime? Or in a similar vein, the process faulting memory in could initially be given small pages and they could be compacted after the fact as huge pages became available.