Most card issuers set your minimum as a percentage of whatever you currently owe - so as the balance shrinks, so does the minimum, which is exactly what stretches payoff into years or decades.
Your card issuer isn't being generous by lowering your minimum as your balance drops - it's just doing the math again each month. If your minimum is 2% of the balance, a $5,000 balance means a $100 minimum; once that balance is down to $2,000, the minimum is only $40. Meanwhile interest is still charging against whatever's left, so a shrinking payment against a slower-shrinking balance is exactly what turns a few thousand dollars into a decade-plus payoff. Simple calculators often assume a fixed payment and give an optimistic payoff estimate as a result - this one recalculates the minimum every month as the balance actually falls, which is the real reason the payoff drags on so much longer than it looks like it should.
The fastest way out isn't a different card or a clever trick - it's simply not letting the payment shrink. Freezing your payment at whatever the first minimum was, or better, adding a fixed amount on top of it every month regardless of what the statement says, keeps the payment doing real work instead of drifting down alongside the balance.