Python asyncio - выход из цикла с заданием был уничтожен, но ожидается

Это соответствующий код моей программы на Python:

import discord
import asyncio

class Bot(discord.Client):
    def __init__(self):
        super().__init__()

    @asyncio.coroutine
    def my_background_task(self):
        yield from self.wait_until_ready()
        while not self.is_closed:
            yield from asyncio.sleep(3600*24) # <- This is line 76 where it fails
            doSomething()

bot = Bot()
loop = asyncio.get_event_loop()
try:
    loop.create_task(bot.my_background_task())
    loop.run_until_complete(bot.login('username', 'password'))
    loop.run_until_complete(bot.connect())
except Exception:
    loop.run_until_complete(bot.close())
finally:
    loop.close()

Программа иногда завершает работу (сама по себе, хотя не должна) без каких-либо других ошибок или предупреждений, кроме

Task was destroyed but it is pending!
task: <Task pending coro=<my_background_task() running at bin/discordBot.py:76> wait_for=<Future pending cb=[Task._wakeup()]>>

Как убедиться, что программа не выйдет случайно? У меня есть Python 3.4.3+ на Xubuntu 15.10.

Ответы на вопрос(3)

Ваш ответ на вопрос