Are you sure another program is not reading the pipe? The named pipe files are sometimes treated as regular files by some (flawed) programs, for example backups. One way around that is to use /tmp, which doesn't generally get backed-up, although that can then create problems with an automatic tidy script!
Another thought, does appending a "\n" help? (It shouldn't, since you have buffering turned off, but is there any NFS software involved?)