The ReadyCh consumer goroutine could block indefinitely during shutdown because it only checked for channel closure but not context cancellation. Changes: - Add select statement to check both ctx.Done() and ReadyCh closure - Add shutdown logging for better debugging - Add 100ms grace period for goroutines to exit Fixes potential hangs when receiving SIGTERM/SIGINT. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>