Detecting whether an accu is full isn't just reading out a percentage, it's comparing the voltage levels. Some products do that poorly, I've noticed that especially for sex toys. Even if they aren't cheap themselves they might be cheaply produced. I've taken apart some toys and found some bad soldering and overall bad quality sadly.
So you're device might already be charged fully, but the status LED misleading. You could try if it actually runs longer than when you only charge it for 3h. I think normally it shouldn't take longer than half a day to charge any device (larger devices will charge with more current but have more capacity to fill etc). Usually just 1-2h.
The other thing that might be the case is that the connection (is it one of those waterproof magnetic ones?) is not optimal and only allows very little current to flow. In that case it might actually take that long and there is not much you can do other that keeping the contacts clean.