ウィジェットブループリントが残ったままになってしまう

サードパーソンキャラクターのMaxWalkSpeedの値をボタンを、ゲームパッドのYボタン押す度に、スピードが1倍から5倍まで変わるように設定し、5倍までいくとまた1倍に戻り同じように循環していくという設定にしています。
この処理はサードパーソンキャラクターのブループリント内に作成しています。

スピードが1倍から5倍まで変わる度にSpeedUpという文字のウィジェットブループリントが表示されるようにし、5倍から1倍に戻るときにはSpeedDownという文字のウィジェットブループリントが表示されるようにしているのですが、連打せずにゆっくり間隔をあけてYボタンを押すとSpeedUpという文字は残らないのですが、
連打してスピードを変更したときに、SpeedUpという文字が残ってしまい消えない状態です。
ゆっくりボタンを押したときと、ボタンを連打で早く押したときに違いが生じており、原因が良く解りません。

ブループリントと文字が消えず重なっている状態のキャプチャを添付致します。
重なる文字が見えづらいかもしれませんが、黒の文字で表示されています。

Execピン(白)を持つ関数ノードは、最後に実行したときの結果を保持しています
そしてその参照を解決するタイミングは、別のノードから参照されたとき、となります
このあたりはなんとなく想像がつくかと思います
まずはこの仕様を認識してください

この点は同一フレームで処理している際にはほとんど問題になりませんが、Delay等のLatentノード(時計のマークが付いたノード)を併用した場合に問題になることがあります
Latentノードが入った場合、それ以降のノードは別のフレームにて処理されることになります
つまり、ひと続きの処理ではなくなったので、別の処理に割り込まれる可能性が発生するわけです

今回の場合ですと、まずCreateWidgetし、AddToViewportしたあとにDelayを挟み、RemoveFromParentという流れになっています
AddToViewportのあとに0.5秒のDelayが指定されたので、一旦そこで処理が中断されます
しかしその直後、その0.5秒の間にもう一度CreateWidgetが実行されました

ここで最初の記述内容を思い出してほしいのが、 関数ノードは 最後 に実行したときの結果を保持している、という点です

1度目に作成したWidgetをWidgetAとしましょう
WidgetAをAddToViewportした後、Delayに入ります
この間で、もう一度CreateWidgetが呼ばれ、WidgetBが作成されます
この時点で、CreateWidgetは、WidgetAの情報を忘れ、最後の結果であるWidgetBの情報を保持することになります
その後、Delayで先送りにされた処理が実行されます
RemoveFromParentはCreateWidgetの結果を参照し、WidgetBを画面から消します

さて、このときWidgetAはどこにいるかというと、RemoveFromParentで消されなかったため、画面上に残っています
これが、画面上にWidgetが残ってしまう原因です

以上が、ボタンを連打した際に起こっている内容になります
ボタンをゆっくり押した場合(0.5秒以上の間隔を開けた場合)は上記のようなことが起こらず、想定どおりに動作しています

分かりやすく説明いただきまして有り難う。
なるほど、widjetAが取り除かれる前にwidjetBが表示されているということなのですね。
しかもdelayで一度処理が終わってしまうということなのですね。
1倍の最後につないでいるRemove from parentを削除して、2倍のセットMaxwalkspeedとそれに繋げているspwn emitter attachの間にRemove from parentを入れてみましたが、結果は同じでやはり表示が残ったままでした。
すみません、残った表示を消そうと思うとどのようにすればよろしいでしょうか?

単に表示して一定時間後にWidgetを取り除きたいだけであれば、AddToViewport以降のノード(Delay含む)を、WidgetBPのConstructイベントに移すのが良いでしょう
Widget自身にRemoveしてもらうと参照を管理する必要がなくなるので楽になります

そこから先は表現の問題になると判断します
ですので、こちらは明確な回答を提示できない、ということをご理解ください

簡単に思いつく範囲では以下のようなものがあります

  • Animationを使用して文字を上や下にずらす
  • そもそも同じ位置に表示しない

回答有難うございます。
教えていただいた、Add To Viewport以降のノードをWidjetブループリントに移動させてみました。

この方法だとSpeedUpの文字はずっと表示されていることはなくなりました。
ただ、SpeedUPの文字とSpeedDownの文字が少しの間重なって表示されてしまうのですが、この少しの間文字か重なって表示されるというのは、このやり方ではこれ以上はどうすることもできないのでしょうか?
delayの時間を0.5より短くしたりして試してみましたが、SpeedUpの表示時間が短くなってしまったため、2倍、3倍の時に早く文字が消えてしまうため、思ったような結果になりませんでした。

Delayの0.5秒というのは保ちつつ、SpeedUpとSpeedDownの文字が重なってしまう時間がないようにするというような場合は、どのように処理されていらっしゃるのでしょうか?

回答いただきまして有難うございます。
教えていただいた方法を参考にさせていただきたいと思います。