Задача будет работать по условию.
Будет работа с базой данных. Как в asp net core это реализуется.
Целесообразно ли писать свой асинхронный класс для этого или есть готовые механизмы в asp?
Что значит "фоновую задачу в ASP.NET Core"? Вы хотите из host процесса, который обслуживает приложение стартовать что-то фоновое? Что вы хотите в этой фоновой задаче делать?