One important thing to notice, and probably deserves a code comment, that any modification of the slot fields done by the info sender backend must be done before actually sending the message via the shared memory queue (or detaching one, if there's nothing to be sent). Otherwise it is possible that is_processed flag will be set on the slot that has been already reused by the receiving backend.
Sorry, the latest version did contain some debugging messages I didn't intend to send. I've removed them and also added a comment about the above synchronization problem.