extracting this into its own method would increase readability as well:
       assertTrueEventually(new AssertTask() {
            @Override
            public void run() {
                assertEquals(3, h1.getCluster().getMembers().size());
            }
        });

assertClusterSizeEventually() ?