I agree with @evildictator but they've really messed up on this one. I have found other people moaning about this but no resolution as yet.
Sadly this one's going to come back as a "won't fix" from the team. This behaviour is by design.
A better question is why your program needs to act in this way (other than for the obvious reason that it did it that way before).
1. Do your workbooks really need to be protected (given that you're unprotecting them anyway, which kind of makes the protection redundant).
2. Do you need to unprotect the workbook to use it?
3. Are you doing the processing on the user's machine? If so, consider offloading the work onto servers. If not, consider upgrading the servers to cope with the load.
4. You will probably find that parallelising the work makes a big difference, and that the cheapest method of parallelism is to run your program N times simultaneously. Each program can pick a file out of the "encrypted files" folder, move it to the "in use" folder and then unprotect, work and reprotect the file. It can then move the final file to the "done" folder. Now run the program 40 times and leave them running and you'll very quickly chew through the files.