Timers in unreal have one huge flaw, they are referenced by normal text name, so if you change name of that function for whatever reason you will lose all connections to timers.
Instead of timer you can create variable that remembers gameTimeInSeconds , then on event tick you check if (current) gameTimeSeconds is greater than that variable + delay. then add branch and you have your own timer without fear of losing reference. IMO such blueprint code is much clearer and easier to read. Also last time i used timers for some reason game was randomly crashing (and stopped when i converted all timers to checking valuse in ontick).
Also most player interactions are fine even if you check them 5 - 10 times per second (instead of 60 times). So i created my own event dispatcher in gameMode (it is easiest blueprint to get reference to) that was firing 10 times per second and i created all my timers based on it. Something like my own custon onTick event.