Hi Luke,
how about: ripping out the use of unix-pipes altogether, and replacing them with tdb (trivial database) in a mmap'd file? the nice thing about tdb is that it's LGPL'd. the messages could be saved and transferred via shared memory; tdb is multi-readable / multi-writeable, and it would save a bitch-awful job of implementing a shared memory sockets emulation layer (which i _have_ seen done, once).
The usual response around here is, show us some patches, and we'll let you know ;-)
Some test cases showing us where we're deficient would be a great start, btw. --Juan