dom.ipc.processCount does not do any load balancing. It just does one tab one process until the number of tabs is greater than dom.ipc.processCount when that happens every new tab ends up in the last process.
For right now any settings other than one are not tested or supported. After electrolysis ships tuning the dom.ipc.processCount value based on the number of cores and and such is planned.
And multithreaded JavaScript for webapps seems like a pipedream. Virtually no one uses Web Workers because they were designed to avoid sharing data between threads, making them inordinately cumbersome to use in any routine/real-world cases.
There is a lot of room for improvement across many fronts. But I am hopeful it will occur sooner or later because I suspect adding more cores will be easier than increasing the speed or each core for the foreseeable future.