Did you get the current body velocity before applying a clamp?
vel = _body.velocity;
_body.velocity = Vec2.weak(vel.x + 16, /*vel.y +*/ 0);
but sometimes when the game gets messy it ends up climbing the other objects
What are these other objects? Side walls(floors)? Elevated platforms(floors)?
Is it just hitting a floor(corner/edge of shape) nape body and causing an undesired effect?
Have you tried playing with custom Materials, perhaps even _body.gravMass - to try and produce a smoother movement?
LineJoint sounds good, not tried myself to see if a LineJoint can be updated in real-time to change the start and end points of said LineJoint. Could always have trigger plates to destroy and create LineJoints at the required locations, for the known length of floor.
Another idea to try that I was picturing... creating an object that would attach itself to the player, like a brick strapped to their head, weighing the player down, or even travelling in the direction of down, whilst being a Compound connection to the player.*
*I think it can be setup in a way that won't collide with other Compound/other Body parts.