I suspect the widget you create each time. Make sure the widget is actually removed and garbage collected otherwise it might still control the input.
You can debug the widget class and see how many instances of it you have spawned. You should have only one of course when its working and nothing when its removed.
Make sure you RemoveFromTheParent the widget when it’s done and also GarbageCollect it. This can all be done in BP.
Also as rule of thumb. I would keep all the inputs in one class only and wouldnt create new classes that also handle input.
For example you can choose you player controller class to handle the input and incase that there is a dialogue widget spawned it will control it and all its functionality.
This will help you keep your code more manageable and if you have input errors, you know they are all probably coming from the same class.
Hope this helps!