HPCC-12128 - MP connections take too long

Resolve mp connection deadlock when A->B and B->A with lower random number

Signed-off-by: Mark Kelly <mark.kelly@lexisnexis.com>
Ok, I can see now, that CMPConnectThread can call attachSocket on another thread..

So the other route of calling attachSocket (via connect(CTimeMon &tm)) is protected by connectsect, CMPConnectThread is not.

But shouldn't it be? i.e. should CMPConnectThread call attachSocket in a connectsect block?
e.g. have a : 
```
bool CMPChannel::attachSocket*Safe*(ISocket *newsock,const SocketEndpoint &remoteep,const SocketEndpoint &_localep,bool ismaster, size32_t *confirm) // takes ownership if succeeds
{
    CriticalBlock b(connectsect);
    return attachSocket(newsock, remoteep, _localep, ismaster, confirm);
}
```

If so, that would deal with the race in itself.
But I'm probably missing something...