Yes, js is technically single-threaded (in all browsers except Chrome), but it behaves similar to a multithreaded language when asynchronous processes (AJAX, event listeners, timeouts) are used. You could be having a problem, though, if you are handling the asynchronous processes wrong. If you post your code or a link to the page, I can take a look and see.
As far as the animation duration goes, I tested a bunch of cases, and the only time things went awry was when I tried to use an unsupported animation.