What you need to do is use the
Link Controller and the
Don't Effect Children option when animating the reloading animation.
Have the mag be linked to the gun. Then at the frame where your off hand grabs the mag to pull out, you'll want to add a
Link Controller from your mag's
Assign Controller Layout. You can then set which bone in the off hand you can assign the mag too at whichever frame you want. Make sure you select the
Don't Effect Children option so the mag isn't caught in a dependency loop.
I haven't actually tested this but from what I remember this should work.