If you want to merge run and punch animations you have to assign another animation group (and blend them). Inside the animation blueprint add a new animation group, then add the punch animation to that group. Then add the group to the animation Anim Graph, currently you only use default group. In the first videos of this video tutorial series, https://www.youtube.com/user/immigrantinc/videos it is explained in more detail.
To quit a running animation add another anim notify, thus add a QuitCurrentAnim at the beginning of each combat animation. But it gets a little more tricky if you use chains of attacks. (See above video tutorials for that). Basically you do not need bools at the input nodes, unless you have other logic in play like blocking or something interrupts. For those add a branch, and check if a bool is valid, ie. Branch if Hit true, play impact animation …
Also delays and animations can make for very unpredictable behavior, hard to pinpoint, so try to avoid delays and animations. Rather try to use the Animation Blueprint (Event Graph) for that.