Removes a serious performance bottleneck

This patch uses a consumer thread and a consumer/producer queue to
remove a serious performance bottleneck introduced with the Cascading
synchronization changes.