When we updated the list of users disabling those who had not logged in for a long time, I added code to allow the user to reactivate the account themselves. This works fine for users whose old password is still valid and meets our current password constraints. If the users password does meet the constraints (i.e. too short) then it sets their password_change_reason from 'Inactive Account' to another reason matching the password failure. The disabled_text is unfortunately not cleared at that time which does not allow them to ever activate the account and requires a BMO admin to do it manually.
I have a patch that will fix this issue properly.