Либо твой аниматор, тоже принимать и поддерживать токен отмены, либо используешь UniTask.WhenAny() вместе с таском ожидания закрытия и ждёш кто быстрей отработает.
В общем случае и с плохими навыками ответ - нет. Потому что ты предлагаешь вырвать из книжки две страницы и пытаться по ним рассказать весь рассказ, а это не возможно.
Естественно при while(true) у тебя юнити зависнет, потому что код юнити не выполняется, а ждёт когда твой цикл завершиться.
Тебе не нужен никакой свой while, он у тебя уже есть от юнити, называется Update.