John Z,
As you say, normally we wouldn't be concerned with accessing the same memory at the same time, but there are two things at play here (and you mentioned both) that require consideration:
1-The pipe-buffers are faster than the edit-control processing.
2-We can't predict incoming data size.
The thread/psuedo-stack idea treats both those issues (in theory).
Then there is the '\r' question and I share your opinion, as previous posts indicate.
So maybe that's the next thing I'll try, a custom, stripped-down edit and test it out.
The timing disparity may or may not still be an issue, but one thing at a time.
Tony