А это точно должно быть на уровне DI?
По моему, здесь в логике что-то не так, если из контейнера надо разрезолвить результат асинхронной операции.
В любом случае, может попробовать зарегистрировать не Some а Func> и резолвить конкретно его.
Стандартный DI контейнер поддерживает такой вариант