Are other processes running at the same time as you do your conversion? If there's a set of constant-HD-use programs running, the HD will have to seek for many of the block read/writes, and it's builtin cache won't be anywhere near as effective.
So - my first guess? Try shutting down all services and kicking all users, if that's amenable to the wraith types. Run it for an hour and see how far through it gets.
Even if this isn't the case, be cautious with parallel processes; HD misses are on the order of milliseconds iirc, which means that at some number of processes you're going to have the bottleneck come from HD access not from CPU time and RAM accesses.
To check: use a clock-tick timer and time a read of one (non-cached, and make sure it seeks!) block off the HD. Ditto for a write (they should be almost the same, though if it caches the write - eg. doesn't use write-through - it could be longer). Then time a search/replace. Betcha the latter is faster.