@Yiwei3 I don't think there is any way you can avoid this scenario. It's Airbnb policy that guests have 24 hours to have their payment confirmed. And you can't retract or cancel without receiving penalties.
But if you find that the dates are still blocked without confirmation for longer than 24 hours, you could contact Airbnb and say you aren't willing to have your calendar blocked any longer. If you use IB and have your settings such that only guests with Airbnb history, reviews and such, can book, there's less likelihood of long waits to confirm payments, as those guests already have their credit card info on file. It's the new users whose payments take time to process.
Guests who use Airbnb a lot generally have their bookings confirmed almost immediately, in my experience.
And if the bookings are requests to book, you do have the option to decline new to Airbnb guests.