Always make sure our future has completed before mucking with a channel.

This causes several methods to potentially throw InterruptedException.