score:3
It is quite common for hotels on the booking.com system to charge when you are in the hotel. Mostly they will tell you when they will charge you or whether they prefer payment in the hotel itself.
But not all hotels do so and if you have not yet paid when you arrive, you can ask the hotel to charge the card of which you have given the details, or you can ask them not to charge your card and pay in person, either cash or with a card.
The non-refundable option does not give any indication of when they will charge. As you, I would have expected the money to be taken out of the account soon after booking, but I have noticed in the past that sometimes they do not charge before you arrive. Not all hotel owners or staff are as familiar with the site as you might expect.
If you have a way to check your bank account while in the hotel you can be sure when they take the money. If you can not check your account, you can insist they use the card and not pay cash.
Be aware that they might have tried to take the money from your account and could not get the card to work. (It does not hurt to call them before you arrive to make sure your reservations is still standing.) In which case you will have to pay in a different way.
They should have send you a message, most likely an e-mail unless you have given a phone number. Sometimes the messages go missing.
About paying twice, it can happen but it is not common. If it happens it is because someone made a mistake. And when it happens, contact the hotel and if they do not pay back soon, contact booking.com and ask them to step in.