I am getting the following layout, check if you aren't moving the nodes later from some post-processing code.
diagram.EnableLanes = true;
diagram.LaneGrid.RowCount = 4;
var n00 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n00.LayoutTraits[SwimlaneLayoutTraits.Lane] = 0;
var n01 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n01.LayoutTraits[SwimlaneLayoutTraits.Lane] = 0;
var n10 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n10.LayoutTraits[SwimlaneLayoutTraits.Lane] = 1;
var n11 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n11.LayoutTraits[SwimlaneLayoutTraits.Lane] = 1;
var n12 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n12.LayoutTraits[SwimlaneLayoutTraits.Lane] = 1;
var n20 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n20.LayoutTraits[SwimlaneLayoutTraits.Lane] = 2;
var n21 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n21.LayoutTraits[SwimlaneLayoutTraits.Lane] = 2;
var n30 = diagram.Factory.CreateShapeNode(0, 0, 20, 15);
n30.LayoutTraits[SwimlaneLayoutTraits.Lane] = 3;
diagram.Factory.CreateDiagramLink(n10, n11);
diagram.Factory.CreateDiagramLink(n11, n12);
diagram.Factory.CreateDiagramLink(n12, n00);
diagram.Factory.CreateDiagramLink(n00, n01);
diagram.Factory.CreateDiagramLink(n11, n30);
diagram.Factory.CreateDiagramLink(n12, n20);
diagram.Factory.CreateDiagramLink(n20, n21);
var l = new SwimlaneLayout();
l.CompactNodes = true;
l.Arrange(diagram);