This may be an edge case :
What happens with a bow-tie shape drawn with non-sequential multi-directional parallel lines with a deep v notch.
A wavy edge where the distance between the ends exceeds twice the line spacing may also fail some algorithms.
Because of the stipulation for parallel lines my intuition would be to make a temporary ucs with X aligled with the collection elements.
Sort the collection bottom to top in Y direction.
Build a points collection by iteration up then down the collection
Build the closed boundary using the points
It would need a bit of translation between ucs <-> world but no complex math.
Regards,