Fix Shutdown()/LameDuckMode() deadlock caused by calling .GetAwaiter().GetResult() on pending ValueTask from Channel.ReadAsync(). ValueTask does not support synchronous blocking — must convert via .AsTask() first. Add two integration tests validating the full Start() → AcceptLoop → client connection → Shutdown lifecycle.