I looked at the code for data processing I programmed a few years ago and I did release the queue at the consumer loop. I also configured the loop to stop once the Dequeue Element timed out which signifies that the recording is finished.
If you used a Sentinel, then you would effectively have the Producer send "There's no more data coming, so you can exit right now without having to wait for a timeout ..."