When a user logs in, the user promotion code will get evaluated. Regardless of if they are banned or the account state isn't valid. This will result in the full criteria being evaluated and any demotions/promotions applying as expected.
But the cron task, and deferred task only apply to non-banned valid users. Despite this being part of the selection criteria for when a promotion applies and is then expected to unapply.