I'd go a bit further. If you want full POSIX support, perhaps WASIX is the best alternative.
It's WASI preview 1 + many missing features, such as: threads, fork, exec, dlopen, dlsym, longjmp, setjmp, ...
I don't think that's accurate, although it's true that needs extra work to work properly in JS based environments.
You can already create threads in Wasm environments (we got even fork working in WASIX!). However, there is an upcoming Wasm proposal that adds threads support natively to the spec: https://github.com/WebAssembly/shared-everything-threads
Right now you should be good to go to start using WASIX.
If you want to compile threaded code, things should already work (without waiting for any proposal in the Wasm space).
If you want to run it, there are few options: use wasmer-js for the browser (Wasmer using the Browser Wasm engine + WASIX) or using normal Wasmer to run it server-side.
No need to wait for the Wasm "proper" implementation. Things should already be runnable with no major issues.
Are you aware of WASI? WASI preview 1 provides a portable POSIXy interfance, while WASI preview 2 is a more complex platform abstraction beast.
(Keeping the platform separate from the assembly is normal and good - but having a common denominator platform like POSIX is also useful).