I just noticed I have not blogged about the test with the Draw On Plane-modifier. It went terrible, the Change Geometry had nearly the same bug as the old code. The old code was the model after which I created the Change Geometry, but that I have managed to transfer that bug into code which works considerably differently is curious.
In any case I have spent some hours last week to try to find and fix the problems. Today I finally found out, where the problem was and even was able to fix it. The problem is, that I need to calculate the index an edge will have after all the changes have been done. This is not easy, as an edge can be split multiple times and so I have to keep track exactly which edge will end up on what index after all the split edges are sorted out. And there I had a big bug in the code, the sequence it ended up calculating didn't match the one which resulted from actually applying the changes. What made it very hard to find is, that incrementally it worked perfectly, only when applying all the operations (e.g. multiple additions of edges, moving of vertices, splitting of edges) it failed.
But now it seems to be working. I tried quite a few modifications and all went through well. But I also found the next problem. A face is created from the sequence of edges. If those edges are split, the face actually created has to incorporate all the splits. And that doesn't work, the result is just wrong. So I will have to look for that problem next.