The dialog box's API could just provide a socket descriptor. Reads are troublesome; you could allow atomic reads if the socket was a SOCK_DGRAM type, but only up to some limit (usually around 65535).
In Linux you could use an eventfd for signaling, and either fall back to the API for reading, or use a second descriptor (i.e. an unlinked tmp file to hold the contents).
It's all quite ugly, though, except eventfd can be an elegant solution for purely signaling purposes. And none of this is based on named objects, only anonymous descriptors. FUSE seems like overkill, though.