Как по мне, лучше всего добавлять поле DateTimeField к профилю пользователя, которое будет означать конец подписки.
При регистрации дата и время может быть сгенерирована автоматически на текущее время.
Сравнивать подписан ли человек можно с помощь timestamp, что позволяет выдавать подписку буквально на несколько секунд.
Это решает проблему когда например человек зарегистрировался за 1 час до начала задачи по уменьшению дней подписки у всех пользователей.
А также впринципе избавляет от того чтобы делать какие либо задачи.