Update AbstractNodeQueue.java to avoid redundant reads of head in peekNode

Avoid spinning on head when a peek/poll observes a null next but the queue is not empty.
I assume peek to be a consumer method. Is that not the usage intended? If peek is concurrent to poll that allows peek to return null when queue is not empty in both implementations as peekNode can return a node halfway through being polled.