Would probably require introducing mutexes around signaling readers, but would fix a rare lost wakeup in `msgq_poll`