The wait methods on the different servers are consuming self. Thus it's not possible to call close while waiting. This creates the problem that if you want to wait for a server to be able to instantly get notified of an error happening in it then you can't abort it before the entire process terminates.
Is this intended behavior or a missing feature? I always want to have a thread waiting for my servers, otherwise I can't detect if they have an error. But I also want to be able to shut them down whenever I want to.