function GrpcServerHandle.drain_and_quit
Initiate graceful shutdown and block until in-flight RPCs have drained (or
timeout elapses, if provided).
timeout is an int (milliseconds) for now. When @std//time.axl
exposes a Duration record we’ll accept that too. Omitted = wait
forever.
If the timeout elapses before in-flight RPCs drain, this returns
anyway and the server task is left running until process exit.
Idempotent — calling twice is a no-op.
