Дочерний контекст отменяется автоматически при отмене родителя. Родительский cancel() закрывает Done() у всех потомков. Обратное неверно: отмена дочернего не отменяет родителя.