Yes, I need all edges including internal edges.
I tried deleting the JOIN step as you suggested and it does help some. The search for edges step (selection1.Search "Topology.CGMEdge,sel") is usually pretty quick, less than 15 seconds.
Just adding up the length of the edges using Measurable...