čekání nemusíte implementovat ručně, můžete můžete použít některý z asynchronních klientů
třeba s https://github.com/aio-libs/aioredis
channel = await sub.subscribe('kanal1')
while await channel.wait_message():
msg = await channel.get(encoding='utf-8')