Ah, so you do want overlapping, but you want to control the z-ordering.
The order in which the objects of a panel are drawn is sequential. You need to make sure the TextBlock comes before the Shape or Picture that is the icon. For example:
myDiagram.nodeTemplate =
$(go.Node, "Auto",
{ width: 100, height: 60 },
$(go.Shape, "RoundedRectangle",
{ fill: "bisque" }),
$(go.TextBlock,
new go.Binding("text")),
$(go.Shape, "BpmnTaskUser",
{ width: 16, height: 16, fill: "white", alignment: go.Spot.TopLeft })
);
produces: