Did you mean plane? Plane intersects triangles and gets 2 segments, which don't have a common point?
If you already take tolerances into account, when comparing floats, i don't believe the rounding errors alone are going to be huge enough to cause problems.
I did it differently, when i wrote a foam cutter software very long ago. As far as i remember, I had a soup of tri edges, and a way to map an edge to a tri. So a slice in my case was list of edges. And I went from a first one, through the triangles it belongs to, to the next.
It was working fine, though I didn't have a huge .stl test base, and those stls i had were seemingly well formed.
Also, you can implement a simple check, if an edge belongs only to one triangle, then something is wrong in the model.