Is there a way to copy the current progress between animation states when transitioning?

I’m trying to refine my pattern for a basic fade-in, fade-out loop in an animator. This example uses a single animation for all four states, with idle speeds set to 0 and forward/reverse set to 1 and -1.

In order to set the start frame, the animation must be set to looping (why?), even though the setting is unlocked even when looping is disabled (why…?). If I want to idle on the final frame, I have to use an offset of 0.99 because 1.0 loops back to the first frame (is a toggle on the last frame of an animation impossible to reach?). I’m sure I’ve wasted hours stumbling unknowingly into those unintuitive pitfalls…

The issue I’m having is that, if I disrupt the forward animation before it completes, say at 40%, the reverse animation will still start at its beginning (100%, or 0.99 or whatever). I want the reverse to start itself at the equivalent position to the state it’s transitioning from so that there’s no clear jump and the transition timing doesn’t have to hide the mismatch.

So a behavior like this: OnTransition {CurrentState.StartTime = LastState.ExitTime}

I’m guessing that, if there’s no way to assign (A || B) for conditions on a transition, that there’s likely no helper features like this floating around?

I found this thread describing how to approach it with code, but I’d love to see a simple module of some kind I can tack on to accomplish it. Something to show me there’s been movement on the animation system’s usability out-of-the-box since I started using Unity in some ancient era.