[SPARK-2677] BasicBlockFetchIterator#next can wait forever

I think there should be an an `else` block here so that we throw an exception only if we haven't hit the ack timeout.

This current code looks wrong because it will fall-through and throw an exception if we receive late-arriving messages that we've already timed out on and marked as failures.