Gotcha, for some reason I only saw a fraction of the C++ part.
In my experience, when things “stop working” after a few seconds, it’s usually garbage collection that collects something I don’t track correctly. However, actors that are in the world, aren’t automatically garbage collected, so that seems unlikely for your Styler object.
Also, having exactly one Styler object in the world, and querying the world for that instance each time you need it, isn’t ideal, for both performance and correctness reasons (it’s overhead to query for objects, and what if there’s two of them in the world?) In general, you’ll want the feedback components to live on the PlayerController (typically) rather than loose in the world. However, I’m also not seeing this as the cause of the symptoms you report.
I assume that your Styler object has a Spline component, and that this Spline is set to actually render something. If you depend only on the debug draw of the path prediction debug drawing, then that won’t stay on the screen, because you only call the start delegate once, when initiating the throw. If you expect your timer to keep firing, you should pass true to SetTimer().
Separately, for feedback for aiming, I’d expect it would feel weird to only update 10 times a second, I’d expect that to be done each frame.