Alleine die StringList durchsuchen macht die CPU Last.
Ich habe jetzt die Suche verbessert und bin von ~10% Last auch <=5% gekommen.
Also eine Verbesserung von ca 50%.
Warum ist es eine Verbesserung, wenn sich die CPU langweilt? Das heißt doch nur, dass andere Faktoren den Vorgang ausbremsen.
Wenn es dir ausschließlich um die CPU-Last geht, kannst du auch zwischen jeden Zugriff ein Sleep machen, dann dauert es noch länger, aber dafür ist die CPU-Last bei 0%. Aber was bringt das?
Eine schnellere Suche wäre z.B. über ein einmaliges Einlesen als Zahl oder Hash möglich. Zum Beispiel über TDictionary oder THashedStringList.