Here's a quick checklist:
Are the cylinders sized correctly and positioned correctly according to the model?
Is the BallSocketJoint's anchor positioned between the cylinders such that it is a logical joint position?
Is the "softness" set to a good value? Softness removes a little bit of rigidity while improved stability in some situations. Try 0 or another small number (below 0.3) to begin with.
Is the "biasFactor" set to a good value? This value represents how much of the joint's position error to try and correct per second. Try 0.2 to begin with.
The source format is generally irrelevant; so long as the correct joint positions are extracted, it should work.
I'm currently working on the constraint overhaul of v0.11.0 as well. It will include quite a lot of fancy new things that will help with making ragdolls, like new constraint types, joint friction and joint limits. When it's ready, I'll probably release a demo partially based on the microsoft sample to show one way of integrating it.
Also, if I create a new cylinder, is there a way to
1>position it with a rotating transating world matrix,
2>get the end points?
1) If you're using v0.10.0 and up, entities have worldTransform and internalWorldTransform properties.
2) There's no explicitly implemented getEndPoints method, but you could retrieve the cylinder.orientationMatrix.Up property. This vector points along the lengthwise axis of the cylinder. If you multiply this vector by half the cylinder length and add it to the cylinder's centerPosition, you can get the top point and similarly for the bottom point.