Уточню, yield нужен что бы получить результат асинхронного метода в текущем потоке. Если рельзутат не нужен (например из sendMessage) использовать его вредно для производительности.
У меня с тем что ты написал не получилось, но зато прекрасно работает вот этот пример. https://docs.madelineproto.xyz/docs/UPDATES.html#async-event-driven Скопируй к себе. И внутри public function onUpdateNewMessage(array $update): \Generator вставляешь то что тебе нужно по аналогии с тем что я скниул. $this->messages->sendMessage() $channel_data = yield $this->getFullInfo() //инфо по чату