1. задача
asyncio.run корректно инициализировать луп и запустить переданную корутину, подождать пока она завершится и корректно завершить работу с лупом.
2. твоя корутина запускает вечный цикл и в цикле принимает сообщения из вебсокета. очевидно что с этими сообщениями ты должен как-то работать.
3. asyncio и async \ await и нужен в первую очередь затем чтобы уйти от callback-hell