Best way to handle aimOffset and different move speeds?

After setting up a BlendSpace for Direction and Speed that works nicely and let’s my character blend between Idle animation, walking left/right/backwards, and running left/right/backwards I followed the tutorial here: Creating an Aim Offset | Unreal Engine Documentation

This was to then allow the character hold a weapon, or even in some cases just point their hand where the player is aiming.
I used the idle anim as the additive reference animation frame, and for my first aimOffset, took the start frame, moved the characters hand out forwards, then duplicated it for up and down with them pointing up and down (Unlike the tutorial, my character rotates with the camera so I only need a 1D AimOffset). I applied this AimOffset in the AnimGraph, and it works perfectly when the character is idle.

If I start to move in any direction it starts trying to blend the movement of the arm for the run animations and it looks completely insane.
My goal is to be able to keep the hand out in front doing the aiming regardless of the motion state.

For this to work will I need to create an aim offset for each of the different animations in the BlendSpace and then programatically determine which one is playing and apply the correct AimOffset in each case? Or is there a more simple/elegant way to accomplish this?

For example do I need to adjust each of the walking/running animations used in the blend space to have the arm held out forwards instead of using it to run?

My fears with both of those solutions are that I want to make multiple playable characters that all share the same running animations, but wield different weapons, ranging from melee weapons, to shields to rocket launchers to pistols. And if I have to make a new running animation where the character is holding each weapon individually then I will end up with a gargantuan amount of animations.

Any help is appreciated!