Wait till node is part of cluster state for join process

When a node sends a join request to the master, only send back the response after it has been added to the master cluster state and published.
This will fix the rare cases where today, a join request can return, and the master, since its under load, have not yet added the node to its cluster state, and the node that joined will start a fault detect against the master, failing since its not part of the cluster state.
Since now the join request is longer, also increase the join request timeout default.
yea, I didn't want to complicate the code to be honest to do so, would be nice to have a Callback base class that does that as you mentioned before, but I suggest in a different change