Мы понятия не имеем, что на самом деле делает ваше приложение, когда оно закрывается. Что происходит после звонка Application.Exit()
? Среда выполнения должна очищать вещи - поэтому она должна вызывать Dispose для объектов и запускать этот код, завершать все, закрывать соединения и любые открытые аппаратные интерфейсы, останавливать все дочерние потоки и освобождать память GC. Вы можете легко получить что-то в методе Dispose или Finalizer, выполнение которого занимает много времени.
Если вы еще не понимаете, что является причиной проблемы, начните удалять большие фрагменты объектов, чтобы увидеть, какой из них вызывает медлительность, а затем углубиться в него, удаляя все меньшие и меньшие кусочки, пока не найдете его.