Right now there's no protection stopping the Python interpreter from garbage-collecting a serving server (and its completion queue). It's a great way to fail an assertion and crash the entire process. Probably the right thing to do is raise an exception indicating a programming defect if the garbage collector attempts to delete a serving server.
This came up in my recent testing and rather than code it up right away I want to take some time to think about it.