> Windows programmers were more familiar with “critical sections” as an abstraction than mutexes.
I disagree on that front. Mutex kernel objects have existed just as long as critical sections. Critical section objects are cheaper because they don’t switch into the kernel when not contended.