The one issue is that if the hand is told to be at a position further away than the lenght of the hand, the entities stretch out and wriggle around. Is there anyway to stop that from happening? I would like the hand to be told where to go to but if it is further than the arm allows, it just points in that direction.
This occurs because there are two rigid joints fighting each other. The joints of the arm want to maintain a length, while the motor wants to pull them further. If the motor has sufficient strength, it will start winning the fight. To solve this, the motor has a variety of settings which can be configured through its Settings property. These include maximum force as well as damping/spring constants for servo-mode motors. Extremely high damping/spring constants correspond to nearly rigid constraints. Try reducing the constants or maximum force on the hand motor so that it still has enough strength to move the arm around, but doesn't win against the arm's constraints when pulling away.
The lagging behind of the arms is now much, much worse than it ever was, like you said it would be and I'm seriously considering just having the arms have an influence on the body. Could I not make the arms very light? Or set the EntityMover max torque to something that would not rip the body along?
Establishing a two-way connection between the body and the arms can be made to work. Reducing the arms' weights is one partial solution, but it will still have an effect proportional to the remaining mass (effectively slowing down the motion of the body compared to the desired velocity). However, the slowdown can be avoided if constraints are used to move the body as well. Changing the desired velocity with a constraint (in velocity mode) would propagate the velocity to the arms without slowing down the body, unlike simply setting the linear velocity.
If you go with a motor to control the body, it would be a good idea to also limit its maximum force. Make sure it has enough to move the object effectively, but not so much that it can win against collisions and shove itself through a wall.
Using a single entity constraint to control the body might not work great, depending on how your character controller needs to work. The single entity motors control all three degrees of freedom, so the character would completely define its behavior without regard for gravity or other forces (unless those other forces can overpower the constraint).
Instead, you might want to look into using something like a LinearAxisMotor. A LinearAxisMotor is a two-entity constraint that operates on only 1 linear DOF. Two-entity constraints can be constructed with one connection as null to connect them to the world frame. This means that it behaves somewhat like a one-entity constraint. It could control the driving velocity of the character, leaving the other degrees of freedom unaffected. If side-to-side motion control is needed, another horizontal perpendicular LinearAxisMotor can be used.