You might be better off decoupling the length computation, which tends to be expensive with any high order surface or curve, and output it to a parameter you fetch from graphs further down the stream. That way you should save a fair chunk of cycles.
If you need to keep them aligned you could also use some tricks to basically reduce the dirtyness to a simpler check, like comparing point positions before you start integrating your length function.

