I have tried to make this new patch set as clean as possible. The previous set made numerous changes to many parts of the wineserver. This set attempts to only make modifications to the sock.c functions. Most of it is simply added functionality which is, in my opinion, required to have a correct implementation of AcceptEx. As far as I know, if wine is going to handle simultaneous connections the accept functionality of AcceptEx must be built into the wineserver and not into the dll's. If the dll's only use existing wineserver functions and async commands then connections will be missed due to a race condition between the wineserver threads and the dll user threads. If necessary I can provide proof of concept code for this.
I placed the conformance tests at the end of the patch series because I do not know how to correctly use the todo_wine{} brackets in this particular case, and I don't particularly feel like breaking down and rewriting the conformance tests at this point in time.