You can animate just the floating part as one animation, then the rest as other animations.
Then play them on different tracks:
Spine.AnimationState state = GetComponent<SkeletonAnimation>().AnimationState;
state.SetAnimation(0, "floating", true); // floating on track 0
state.SetAnimation(1, "talk", false); // talking on track 1.
state.AddAnimation(1, "laugh", false, 0f); // laugh on track 1 after talking. floating will continue.
You can preview multi-layered animations using the Preview panel introduced in Spine 3.6
Blog: Spine 3.6 - Tint black, clipping, weight painting, and more!
You can also see a sample of this in the Spine-Unity unitypackage examples.
Spine-Unity girl has a main animation on track 0, and occasionally plays a blink animation on track 1.