The caveats are: - `AppDomain.ProcessExit` might not be called - `AppDomain.DomainUnload` might not be called - critical finalizers https://docs.microsoft.com/en-us/dotnet/api/system.runtime.constrainedexecution.criticalfinalizerobject?view=net-6.0