Can't execute delegate from within latent node proxy object

I’m implementing latent nodes in C++ for blueprints, one thing I noticed which is needed to make them work is static function, which will make proxy objects.

Title pretty much explain it. I have creating Wait For Confirm task, which is executed once, and it bind delegate, then it waits for user to confirm input. But delegate is never called.

Edit2:
I narrowed problem to this point:

virtual bool ExecuteIfSafe(ParamTypes... Params) const override
{
	// Verify that the user object is still valid.  We only have a weak reference to it.
	auto ActualUserObject = Super::UserObject.Get();
	if (ActualUserObject != nullptr)
	{
		Super::Execute(Params...);

		return true;
	}
	return false;
}

Super::UserObject.Get() return null.

Edit:
Unless it should work, and I do something terribly wrong, here is some code:

This is from ability to check if it needs confirmation and confirm it:

bool UGASAbilityBase::IsWaitingForConfirm()
{
	if (OnConfirmDelegate.IsBound())
		return true;
	else
		return false;
}
void UGASAbilityBase::ConfirmAbility()
{
	if (OnConfirmDelegate.IsBound())
		OnConfirmDelegate.Broadcast();
	OnConfirmDelegate.Clear();
}

This is from latent task:

UGASAbilityTask_WaitForConfirm* UGASAbilityTask_WaitForConfirm::CreateWaitConfirmTask(UObject* WorldContextObject)
{
	auto MyObj = NewAbilityTask<UGASAbilityTask_WaitForConfirm>(WorldContextObject);
	if (MyObj)
		MyObj->Initialize();
	//MyObj->CachedTargetDataHandle = TargetData;
	return MyObj;
}

void UGASAbilityTask_WaitForConfirm::Initialize()
{
	if (Ability.IsValid())
	{
		if(!Ability->OnConfirmDelegate.IsBoundToObject(this))
			Ability->OnConfirmDelegate.AddUObject(this, &UGASAbilityTask_WaitForConfirm::OnConfirm);
		//Ability->ConfirmDelegate.CreateUObject(this, &UGASAbilityTask_WaitForConfirm::OnConfirm);
	}
}

void UGASAbilityTask_WaitForConfirm::OnConfirm()
{
	OnConfirmed.Broadcast();
	EndTask();
}

Old Question:
But I’d like to have one proxy object per single node, as sometimes I want to execute this node few times, ie. player must press input button few times, one for action begin and one to confirm it. While wires are connect to single node (call it WaitForInputConfirm), it will create multiple proxy objects, which right now breaks, my system, because the last object, which delegate is called is allready not connected to node delegate output execs,

Other thing for example I would like to store some state inside them (ie, max delay time, checked by timer, for user to confirm action), which currently would work, as new object have no idea about old object timers.

Is there any good way to, to make sure only one proxy object will be created per node, and it will be reused for the entire life time of said node ?

Solution was actually quite simple.

All I needed was component, which derived from UGameplayTasksComponent.