To sklp to the next keyframe you could try stopping the animation after a breathe and then use Animation.resume(RESUME_AT_NEXT_KEYFRAME). Then if you know the time between the keyframes* you can stop it finally at the third keyframe. Using that technique it should be quite simple to create a subflow to run based on passed parameters - startkeyframe and numkeyframes.
Example attached.
animation_keyframe_2to3.fsm
* You can find the duration of the keyframes from the difference in keyframe node values (from the tree). If you've specified a different duration when starting the animation then you'll need to calculate the effective keyframe intervals on a pro-rata basis assuming they are scaled linearly.