Variable not changing due to delays and restarts

I’m having a few problems dealing with increasing the player’s speed.

Here’s whats going on. When the player touches an orb, they gain 500 speed. After a delay of 5 seconds, they lose 500 speed. Works great. The issue is that if the player touches another speed boost orb before the last one wears off, the player permanently gains 500 movement speed, since the previous one never wore off. I’d like to have it where the countdown for the previous speed ups still count down, so if the player goes long enough without collecting any boosts, they will return to their base speed.

Here’s the blueprint I’m using. It’s pretty simple. I know why this is happening, but not how to correct it.

The other thing I’m trying to do is play a looping sound effect when the player is above a certain speed, and not have it play when the player is under siad speed. I’m unsure exactly where to place the code for this. I attempted it in Event Tick, but it just plays the start of the sound effect continuously when the player reaches the required speed.

Thanks!