I've created https://jira.jboss.org/browse/ISPN-731
Vladimir, mind taking a look into this one as you're familiar with the code re:state transfer?

Can't we factorize the code common Leave and Join code and still use a single thread to do all the action? There's no point in using two threads that run in sequence (unless they do some parallel processing?).

Umm, nope.  :)  One is a push and one is a pull.  Very different.
Can't we just do push and no push(xor pull)? I guess my basic question is: what do we get by doing both push and pull at the same time? Any operation happening in parallel which would make things faster?