How to do a threaded delay in a non-Actor blueprint

Hello! I currently am having an interesting situation with a blueprint system I’m setting up. Essentially, I have a class called “Attack” extending from Object that contains a method “On Attack”, passing in the attacker. What I’m trying to accomplish, however, is have it do a time delay inside the method WITHOUT freezing the main thread (that’s the important part). This is an all-blueprint system at the moment. This is what I’ve tried:

  1. The Delay node: this doesn’t work because it doesn’t exist for non-Actor (I think) blueprint.
  2. Making my own delay node in C++ using FPlatformProcess::Sleep: doesn’t work because it freezes the function execution and, therefore, freezes the whole thread.
  3. Using the timer node: can’t be used because it (for some reason) crashes the editor when it’s used inside this blueprint (neither the function nor the delegate one)

I’m not quite sure where to go from here or if this is even possible. I’m open to a C++ solution, but I’d prefer that I could use it in a generic node that can be used anywhere (as opposed to setting a timer in C++ or something, where it isn’t reusable).