Add the candy bar to your room charges, pay for the room with the Amex and be sure to tell them you are paying for the candy bar with your VISA after you pay for the room charges with your AMEX. That closes your account out with the VISA and it should post fine.
The VISA payment has to be the last transaction performed.