Подскажите пожалуйста как переделать метод start. Чтобы он выполнялся в фоне, и когда вызывался asyncio.sleep, засыпала не вся ветка кода что вызвала её, а метод start возвращала управление обратно, чтобы create_timer и func продолжила выполнение. А когда asyncio.sleep закончится, функция start продолжила выполнение и выполнилось в фоне. 
Проблема в том, что метод start блокирует всю ветку куда что его вызвала, вместо выполнения в фоне.
Это примерный неполный кусок кода для наглядности:
...
class ClassName():
    async def func(self):
        ...
        await timer_manager.create_timer(args...)
        ...
class TimerManager():
    _timers = {}
    time = 0
    def __init__(self, time):
        self.time = time
    async def create_timer(self, args...):
        self._timers[args...] = Timer(self.time, args...)
        await self._timers[args...].start()
    async def delete_timer(self, args...):
        try:
            ...
            self._timers.pop(args...)
        except:
            pass
class Timer():
    time = 0
    ...
    def __init__(self, time, args...):
        self.time = time
        ...
    async def start(self):
        await asyncio.sleep(self.time)
        ...
...
timer_manager = TimerManager(args...)
...