TIL Go's mutex is unfair by default, allowing the running goroutine to re-acquire a lock it just released. This is faster because it avoids having to park and unpark goroutines, and is kind to CPU caches. But if starvation is detected (defined as >1ms of waiting), it switches to fair servicing of waiters.
https://go.googlesource.com/go/+/refs/tags/go1.25.3/src/internal/sync/mutex.go#31
