このように.NET Core/.NET 5以降ではファイナライザの実行が保証されない場合があるため、代替手段としてAssemblyLoadContext.Unloadingイベントが追加されています。 実装したい終了処理がクリティカルな場合は、このイベントを捕捉し、そこで終了処理を行うようにする必要があります。 特に、プロセス終了とともに自動的に解放されないようなリソースを扱う場合は、ファイナライザではなくAssemblyLoadContext.Unloadingイベントで解放処理を行う必要があります。