#3405 - fix race between consumer and producer for MPSC

If we see that we didn't have a next pointer but head was not tail, somebody is in the process of enqueueing so retry.