This is a very slow process. However, for users that have multiple drives this time could be slashed big time!
Very simply stated, start multiple threads for each physical drive that is listed to be wiped. There is no reason this has to be a sequential process by ccleaner. CPU usage is not an issue here, but disk access is.
Have an option for the user to start multiple processes for each drive to be wiped, all processes running in parallel.
Art Zerger