Acho que é um bug do c#.
Uma vez tive que usar isto pra tirar uma dll do excel da memoria:
System.Diagnostics.Process [] PROC = Process.GetProcessesByName("EXCEL");
foreach(System.Diagnostics.Process PK in PROC)
{
if(PK.MainWindowTitle.Length==0)
PK.Kill();
}