All improvements are in V6. I fixed a freeze bug, so I’ll be interested to see examples that freeze.
Taking long time problem can be resolved with an escape, but if it is in a loop somewhere, escape will not help. If I recall right, implementing an escape is complicated because of how the command is structured, especially if attempt to return partial result. I’ll look into it nonetheless.
In terms of speed, I tried to have a shot at processing multiple co-planar faces at once (create one big boundary and one plane), but had out of tolerance edges that created bad objects in some cases. The problem was that while adjacent faces were coplanar within tolerance, faces that are farther apart accumulate enough wiggle that pushes some edges out of tolerance relative to the plane. This is why I reverted to the original exhaustive solution of solving for 2 faces at a time. I think it is on @chuck list in V7 to look into possible speed optimization of MergeAllFaces.