Update ConnectionThreadPoolExecutor to maintain a PriorityQueue of connections. This allows us to avoind making more connections than necessary.