Исходя из того, что я понял, подход вполне правильный, однако использование
apscheduler - третье колесо для велосипеда. Библиотека
aiogram изначально является асинхронной, поэтому лучше будет использовать встроенные функции AsyncIO:
if __name__ == "__main__":
loop = asyncio.get_event_loop()
loop.create_task(dp.start_polling(bot)) #Запуск диспетчера aiogram
loop.create_task(myfunc()) #Запуск вашей функции (Перепишите её под бесконечный цикл)
loop.run_forever()
Альтернативно можно использовать модуль
Threading или
Multiprocessing, чтобы запускать функцию через них