I just happen to try this out for myself today and got surprisingly good results. The last time I attempted it, my character was swinging his arms all over the place, but this time it worked and I think I have a handle on it now.
This is for an enemy ai that needs to walk around looking for the player then run at the player and swing to attack. I set it up as a walk on the spot test at first, shifting it on to a moving enemy in the game should be easy.
In the first picture you can see four "moving" states. These all animate the entire character and all have the exact same action settings. All looping, blending, stop same layer, blend time 0.3. Most importantly, all layer 0.
In the second picture you can see the attack animation. This is isolated to only affect the torso up, so the legs keep walking/running/idling. Most important thing to notice, layer 1. This lets it play over top, stopping the arms swinging from the "moving" so they can punch, then blending back again.
Note, there's no weight changing here. In my tests so far I haven't needed it. The layers are doing all the work. I even added a 3rd layer so I could test out a quick impact reation animation (set to additive), for when the character is shot. It works perfectly. So he can now be walking, transition to running. While punching at the player, while his body shakes, taking multiple hits from the player.
Hope this helps.