This method only works correctly when there's no faces flipped compared to others in the way of the loop. I may update this answer later with the solution. It also works for only one selected edge, and doesn't work for borders or no face edge loops
It is also slow on heavy meshes due to the required large iteration count of Repeat Zones

To select an edge loop starting on a specific edge we can walk through the edges of both ends until we find a non 4-pole or the.
To get the next edge in one of the directions, use the Corners of Edge node to get one of the corners of the edge $\to$ get the following corner in face with the Offset Corner in Face node $\to$ get its next edge with the Edges of Corner node $\to$ get its edge corner that is not the corner used to get the edge $\to$ offset that corner by $1 \to$ get that corner's next edge. While doing that we can check if the next vertex (offset corner by $1$) is not a 4-pole with the Vertex of Corner node and the face count of the Vertex Neighbors node, if its not, chech if the next edge is already selected:

This node group does a single step for one direction, to do both directions we use one node group per edge corner in a repeat zone:

In the loop, you use the node groups to get the next edge and set it selected, but only do that if Stop (found a non 4-pole) is false. If Stop is True, just pass the previous values to the next iteration using the Switch node.

I used 2 repeat zones nested to reduce the number of iterations executed after both directions stop. Just an extra group of Switch nodes to check.
$\small\text{Blender 4.0}$