I'm noticing that lsh seems terribly laggy when used for an interactive shell. Looking at the source I don't see the TCP_NODELAY socket option set anywhere. Perhaps this could be added (possibly only for an interactive shell if that can be determined) ?
I did try to add it to the setsockopt call in io.c myself to see if it'd help, but for whatever reason it doesn't want to build after I make any edits - something to do with the abstraction stuff I guess.