Whether the event stays bound?

Yes, you will need to remove the OnNotificationStopDisplay binding, assuming it’s possible for the notifications to ever call that multiple times.

It may be best to add a dedicated callback function that OnNotificationStopDisplay binds to instead of just binding directly to TryToInvokeNotification. For that dedicated callback function, the notification could pass a reference to self. There you could remove the binding and then call TryToInvokeNotification().

That’s the type of reason largely every unreal C++ delegate passes a reference to self.