На просторах интернета примеров по теме много, т.е. у многих такая проблема, в целом условно все сводится к тому, что самый действенный способ это просто завершение процесса Excel по его идентификатору(если нужно форсировать закрытие приложения), примеры можно посмотреть вот тут :
Close Excel Process with Interop
Как закрыть процесс Excel? - C#
У меня самого именно таких примеров не было, чтобы оставался висеть процесс Excel после вызовов сборщика, finalize, и обнуления переменной приложения, в исключительных случаях присваивал null всем объектам экселя типа workbooks, workbook и т.д.