As simple as the action seems it’s actually complex depending on the context of the jump and if you are using in-place or root motion.
The problem is when using in-place the animation is reactive to the movement component and the MC is referenced to world space and not to ground so it does not know if the jump is as for distance or jumping off a cliff and does not supply a value as being close to ground rather then when it’s no longer “in-air” and by that time there is no way to sync the landing as to an event that has already occurred.
Most times the exit statement would be something like. .“if not in_air then exit” so your timing is off as the player for the most part has already landed.
What is needed as a statement is “if player = 2 feet off the ground then exit” which will allow the player to exit into the landing “before” the player is no longer “in-air” adding another state to the more traditional progression
Press Space bar
Cycle while in air
Exit state before landing
Exit into the run out from the landing.
So whats need is value of just how high the movement component is relative to the ground so that a given action knows when to be triggered with in the constant velocity of the MC.
Best practice would be is the MC should supply this value but until then you could add a line trace to evaluate the distance from ground and use that value to determine when the current state needs to exit “before” the fixed state has changed.that will give you the time necessary for a proper blend.