I'm not sure if this will work (or work well), but you can try running OneShotServer inside the loop, so only one connection is served at any given time. When the connection is closed, the server ends and you start another for the next client.
Sort of:
is_aborting = False
while not is_aborting:
server = OneShotServer(myservice, *args, **kwargs)
server.start()
, ThreadedServer _ accept_method, , , , .