Editor hangs in "Unloading level" when binding custom delegate in level instance blueprint

Could you try BindWeakLambda

Static: Binds a weak object C++ lambda delegate technically this works for any functor types, but lambdas are the primary use case

Example from the forum

Request->OnProccessRequestComplete().BindWeakLambda(this, [this](...)
{
    // Game thread is required to trigger a BP event
    AsyncTask(ENamedThreads::GameThread, [bSuccess]()
    {
        OnConnectResult(bSuccess);
    });
});

Weak binds should be able to default back to null pointers.