Ouch. I forgot about that nasty side-effect on hosted platforms. But yeah, we could catch a lot by testing hosted & sim builds with pthreads if we wanted to go fully preemptive. The biggest chunk of core code that isn't testable that way is the filesystem layer. I think being able to test the FS code in sim would be great for many other reasons too, but it's a PITA to implement.
Realistically even if some platforms could go preemptive, we would still need to support cooperative threading for the foreseeable future, to avoid breaking platform-specific code that we can't update for whatever reason (lack of hardware, time, etc).