I like the visibility you get with the QUEUED_START_NODES attribute. But it feels like we should be using a different way to synchronize. e.g. if using hazelcast, each call to getAttribute could return a different de-serialized list so `synchronized (queuedStart)` will be on a different object for each CassandraNode.

I'd probably prefer use of a semaphore. (note that Hazelcast I believe has support for things like distributed semaphores).