Confused by HW_ERROR / load switchoff (XM430-W350-T) in OP_CURRENT_BASED_POSITION

Folks, I have a XM430-W350-T servo here that has (to me) confusing behavior. I am using it to move a counterweight in a rolling-ball robot, which is quite heavy but should be doable with its 4.1Nm stall torque. However if blocked (if the robot is on carpet for example), in regular position mode it overloads and at some point switches off with HW Error 0x20 (= overload). Monitoring the load says it’s going up to the 2.4A stall current very briefly, then constantly decreases down to a current of some 1.7A until after a while it switches torque off and reports this hardware error.

My intention was to prevent this switchoff by making it more compliant by going into current-based position control mode (5, OP_CURRENT_BASED_POSITION) and limiting the current the servo can draw. However this does not have the desired effect. The servo definitely operates with less torque, but if it stalls at the lower torque it still detects that stall and goes into HW Error 0x20, switching torque off.

From the Dynamixel doc videos I thought going into current-based position control mode would turn the servo compliant, i.e. you can push against its torque and it will let that happen without switching off. Is that not the case?

I am running the servo from a 12V power supply delivering up to 10A, which the servo never draws; its load / present current also always stays well below the current limit of 1193 (default, I did not change this). What is the criterion that makes it detect stall and shut off?

Controller is an Arduino MKR Wifi 1010, with a Dynamixel MKR Shield on top. Software is my own, utilizing the Dynamixel2Arduino and DynamixelShield libraries.

Let me ping again here, I would really like to solve this, as it is making my robot very unreliable.