I tested SplitPath and could see that it slows down file scanning. Testing shows that a built-in variable A_LoopFileExt would only use half as much CPU time as SplitPath. Due to this plus the convenience of A_LoopFileExt, it will be in the next update. Thanks for suggesting it and posting your performance findings.
As for your other question, the reason the CPU is not maxed by a file-pattern loop is that the file system was probably not in the cache at the time of the operation. As a result, the script is forced to spend much of its time (80% in this case) waiting for the hard disk to provide the info it needs to continue. This would be true of any disk intensive process, not just a script.
In this case, adding more threads to the program (each script currently has only one thread) might actually slow it down because the the hard disk is then often forced into a more random pattern of access, which moves the drive head more, which in turn might slow everything down to a crawl.
One thing that would probably speed things up is that when you have more than one physical drive. In that case, having a separate instance of the script running for each drive would allow all drives to be accessed in parallel. This might as much as double the speed of the operation (or triple for three drives, etc.)
Edit: A_LoopFileExt has been added in
v1.0.36.02.