In a limited sense, yes, Windows (without NT) increasingly /used/ memory protection hardware over its life but never in a holistic approach as we typically understand today to create a TCB.
I don't believe Windows 2.0 implemented preemptive tasking, can you show a reference so I can learn?
AIUI Windows/386 2.x is basically a pre-emptive V86-mode DOS multitasker that happens to be running Windows as one of its tasks. So the GUI itself is cooperative, but between its VM and DOS VMs it can pre-empt.
(Windows 3.x 386 mode is similar, with Windows 9x stuff in the Windows VM can pre-emptively multitask, mostly).
I'm not that guy, but the Wikipedia article[1] is a decent jumping-off point, but I also found this blog article[2] talking about the different versions-- although it seems to get a couple things wrong according to discussion about it on lobste.rs[3] Finally, this long article from Another Boring Topic [4] includes several great sources.
The Lobsters discussion was very interesting. Some people in there were extremely knowledgeable, but also very confrontational. Coming straight in going "that's all wrong!" is not a productive way to start a discussion IMHO.
I didn't get any very firm conclusions from it. There are some very knowledgeable people out there on the WWW claiming, with convincing arguments, that Windows/286 couldn't run in 286 mode and only gave you 640kB ("conventional memory" in DOS terminology)+ 64kB HMA.
Others, including from Microsoft, say no, Windows/286 did run in protect mode and could access 16MB of (segmented) RAM.
I don't believe Windows 2.0 implemented preemptive tasking, can you show a reference so I can learn?