Animator.Play not working when in Sub-State Machine

I’m facing a bit of a dilemna. The following code is being used in my animator wrapper to set a specific frame.

animator.speed = 1f;

// Set & Push Animator Params
animator.SetFloat("exampleParameter", 0.5f);
animator.Update(0f);

// Set Animation Frame
AnimatorStateInfo asi = animator.GetCurrentAnimatorStateInfo(0);
animator.Play(asi.fullPathHash, 0, animPlaybackTime);
animator.Update(0f);

animator.speed = 0f;

The problem I’m having is that in an animator where the current state is within a sub-state machine, the playback frame isn’t being correctly set, whereas in another object where the current state is not in a sub-state machine, it’s working just fine.

I’ve checked the values in the debugger, and animPlaybackTime is being correctly set, yet asi.normalizedTime never moves from 0f…

Update: Animator.SetTime() doesn’t appear to work properly either!

So it turns out that the problem involved the way I was using transitioning from Any State into the state machines, but now I have another even bigger problem…