pedit may have to be done the way you going about it, unless, and its a huge unless, you grab the ents, store the points, and erase/redraw the geometry on the fly.
On a side note, one way I tried to beat the sendcommand synchronous problem was to put the send command in its own function, so that your program is "paused" while the other funcion finishes, and when its done, focus returns to your main program. Not very elegant, but it does work.