Каков правильный способ выполнения некоторой статической финализации?
Нет статического деструктора. Событие AppDomain.DomainUnload
не отображается в домене по умолчанию. Событие AppDomain.ProcessExit
разделяет общее время трех секунд (настройки по умолчанию) между всеми обработчиками событий, поэтому оно не может использоваться.