XML selber ist auch nicht immer schnell (
MSXML ist bei mir sehr langsam

)
Und was das suchen angeht ... zwei Mal ~30.000 Dateien suchen, in eine gemeinsame Liste eintragen (bei mir je auf USB-Stick und Festplatte geht hier in weniger als einer Minute)
wenn dir FindAllFiles (in Verbindung mit TStringList) zu langsam ist, dann such selber und nutze eine bessere Liste.
Ein Therapeut entspricht 1024 Gigapeut.