For the surfaces that are rolling on each other, I suggest changing the contact from Frictionless to Rough.

I suggest adding a blend radius on the edge of the hole in each rigid link. Add a sizing mesh control to that blend so there are several elements around the blend radius.  Make sure the element size on the cable is small enough to put several elements in the size of the blend radius.

There are two cables, one on the top and one on the bottom. One cable should be attached to a spring to ground with a pretension on it. The other cable should have a displacement boundary condition to shorten or lengthen the cable to bend the snake up or down.

These three changes will make the model converge more easily.