Q:

Why does MSE take a long time to remove a virus? 

Microsoft Security Essentials is fairly fast at scanning for viruses, but it takes a long time to remove a virus.  It would be much worse if the virus duplicated itself in many files.  
I guess maybe MSE is doing some kind of house cleaning and repairing stuff (liking checking and restoring the changes that the virus probably made in registry).  If that is the case, why does MSE do this for every instance of that virus?  
Is there any workaround? 

A:

Removing a virus or malware isn't exactly a task you want to rush. 
If there is one thing I've learned about software, it is that closing down a process is far more difficult than spinning up a process because it is a delicate operation when you gotta un-weave an object from multiple processes that may be now a part of it.  It's not like you can just rip it out. 
If it has started to inject code, then you have race conditions to consider, otherwise the OS may return an invalid handle and crash your program.   Worse is if this program is a low level one, which means a blue screen. 
Another thing is I suspect other antiviruses are being sloppy.   The past eight years have an embarrassment to antivirus companies, but that's just speculation. 
I personally am glad it detects it at all.   Better safe than sorry.