Edge labels are always rendered horizontally. I would like the label for any straight line edge to be rotated so the bottom of the label's bounding box is coincident with the edge.
There was an older post (Comfortable Edge Labeling of Undirected Graph) that did this using EdgeRenderingFunction, but that has been superseded by EdgeShapeFunction in v12. EdgeShapeFunction does not have access to the label like EdgeRenderingFunction did.
Labels following a curved edge would be a bonus, but just paralleling a tangent somewhere on the edge would suffice.

