Syncing two animators

I have a character that is composed of several different animators for each of the parts of the character, like body, armor, weapon, etc. Every individual part has its own controller that handles all of the transitions. For example, every weapon has its own controller with transitions to different animations like idle, walk, etc. The problem is when changing one of these controllers the animation becomes out of sync with the rest of them since it is starting at the first frame and the others can be at any frame. I see two potential solutions.

  1. Reset all the other animators/animations so they’re all starting at the first frame

  2. Have the animator that is changed set to the same frame as the others

I was able to accomplish the first option with the following:

//Update the controller
animator.runtimeAnimatorController = ...
animator.SetInteger(...); //Set all of the parameters for the transitions

//Reset other animators
for each of the other animators
{
    animator.Play(animator.GetCurrentAnimatorStateInfo(0).fullPathHash, 0, 0f);
}

The animators do become synced with this, but since all the animations are resetting, it doesn’t look good and is not ideal. So, I’m trying to accomplish the second option now. The only thing I’ve tried is this:

animator.runtimeAnimatorController = ...
animator.SetInteger(...); //Set all of the parameters for the transitions
animator.Play(animator.GetCurrentAnimatorStateInfo(0).fullPathHash, 0, otherAnimator.GetCurrentAnimatorStateInfo(0).normalizedTime);

Unfortunately the animation still starts at the first frame, even if I put any random value for the normalizedTime. I haven’t been able to find anything else that could potentially work. If there is any way to accomplish the second option, or if there is another option I haven’t considered, any help would be greatly appreciated.