If the last writer on the fifo dies and the reader checks the fifo, it sees an end-of-file. If there is again a new writer before the reader checks, there is no end-of-file seen by the reader. I guess your reader (omxplayer) checks for end-of-file.
To put it from the perspective of the reader omxplayer
: it sees
"q" EOF ... <LF> EOF
"q"
(EOF
probably not seen byomxplayer
)<LF> EOF
"q" EOF ... <LF> EOF
What happens is entirely up to how omxplayer
processes this, and not a matter of you, the operating system or your shell messing it up.