It applies to any concurrency primitive that can be used across threads, yes. NSLock and os_unfair_lock can only be unlocked by the thread that locked them, so you can’t abuse them to turn async code into sync code in this manner in the first place.
Basically people recommend os_unfair_lock because of what it can’t do.
Basically people recommend os_unfair_lock because of what it can’t do.