Notifies should just be reading/writing to the owning actor. The Timeline shouldn’t care. When you go to calculate damage, or apply a particle effect - you can use the Dynamic Bindings on those tasks (the + sign on some of the fields), to ask the owning Actor what weapon/effect/damage to use.
As for the raycast call, I’m not sure what’s going on there without a callstack (if you turned off the Async behavior, then it should be a new callstack). Likely you’re either accessing a null component / actor (meaning you aren’t checking the results with an IsValid check), or you’re trying to set a property on an object that doesn’t want to be written to. There should be a Blueprint helper node to get the closest bone to a ray hit - but I don’t remember the name off hand. Queries can’t get closest bone (as they just determine if something is in/out of a volume), Raycasts can as they are more precise and determine the point of a collision.