Выносишь цикл проверки в отдельную корутину check_loop(), в main() делаешь
async def main():
logging.basicConfig(level=logging.INFO)
async with ClientSession() as session: # сессию лучше по сто раз не создавать
check_task = asyncio.create_task(check_loop(session)) # создай её однажды и передай в check_loop
try:
bot = Bot(
token='"'
)
await dp.start_polling(bot)
finally:
check_task.cancel() # внутри check_loop() сгенерируется прерывание asyncio.CancelledError
Единственное, придётся в коде/конфиге прописать id чата, куда check_loop() будет отправлять сообщение с результатами.