fetch new clusters in background thread

reloading clusters on demand now looks less wonky, but there's still
lots of work to do