Is there a more efficient, memory sparing way of generating an entire list of paths and filenames on a drive?
Probably you need to figure out what goes wrong first (It could be anything: like recursive symlinks, wrong permissions, or even unexpected behavior under the hood of FindAllFiles' defaults). Try TFileSearcher to display a progress of searching to figure out.
p.s. I'm curious why one should query all files from root mount point (/). In the unix-like filesystems there is a concept "everything is a file" - in the sense that everything (incl. disks, devices, memory, ipc, other virtual filesystems) is addressable as filename, but not everything is actually a file. Thus, regarding your title, "/" <> DRIVE.