Fix broken job processing

If there were multiple operations with multiple jobs to run, the closing
and opening of file descriptors wouldn't be enough to clear the FIFO
that's tied to them, which would enable more jobs to run than what was
either specified or determined by the user.

Closing, removing, and re-creating a FIFO that's opened read/write to a
file descriptor prevents this from happening.

An extremely hard bug to track down; I'm glad it's found. :D