The real time character counter for the description is counting characters, but the validation check when posting the listing is counting bytes!
Keeping in mind some characters can take up more than one byte, so when the final validation uses bytes instead of characters we get the situation where a listing's real time character count says it is under 5000 but it wont pass the final validation when posting!
Please note that non-programmers would be finding this behavior inexplicably frustrating as they would not understand what is happening.
This bug has lead to several products I edited last year (with a character counter below 5000) generating errors when I try to change only their price this year.
You can find an example of a listing that can't be re-saved in the link below, and if you look at the linked non-demo version you can see what I had to do to fix it.
Please have the final check use characters instead of bytes to restore the original expected behavior.