Oh yes, the following took me a while to find out ;)
The WSE-enabled proxy class is not thread-safe. When the proxy class is used to make multiple asynchronous calls to a Web service method, each call must be completed using the EndXX method before another call may be made.
WSE proxies contain state that is used for each method call. This
is the RequestSoapContext and ResponseSoapContext. Making 2 or more
concurrent calls from different threads means that each of those threads
will be attempting to access this state and this may produce conflicts.
Therefore you are not able to have overlapping asynchronous calls from a single proxy. If you want to have multiple async calls from the same client, you need to have separate proxies for each request.