There’s no easy way to route links so that they do not cross each other. As you probably know, that is impossible to do when the graph is not planar.
You could try increasing the Node.avoidableMargin to be something like new go.Margin(2, 2, 30, 2)
or some other suitable value. I don’t know if that will cause other problems, though.