Hmm… Looking at the manual page that describes “half-body animation”, I see that it allows one to specify a list of joints to be excluded from a half-body animation.
I’ve thus gone back to your earlier test-program and modified the call to “makeSubpart” that defines the “arm” sub-part such that it now additionally has the following parameter: excludeJoints = ["hand"]
And indeed, with that change, the half-body animation seems to work!