If the user has a payment method on file, it will attempt payment per your payment settings in that window. Default setting, I believe, is 7 days. Which is why payment is taken before expiration in those cases. You can, of course, adjust this if you wish.