Roman, David, thank you for your responses and guidance. I'll add "coroutine" to my terminology stash.
In answer to the question Roman asked at the end of his post, my use case involves a supervisor farming out job IDs to workers. It doesn't matter which worker does which job, so I was stuffing all the jobs into a fifo and letting chance decide who ends up with what. I agree with you all that switching to a deterministic approach is wise.
I've rewritten my "write by one, read by many" example to respect ports and provide a manager that arbitrates requests (following along with Dav