You don’t need two skeletons, you just need one skeleton and two animation groups that control the upper and lower body.
I made a simple example by programmatically limiting two animations to the upper and lower body, and then playing them simultaneously.
eidt: reversal