Userspace spinlocks seem like a risky idea too.
What if it was on a VM and the core holding the lock got descheduled from the hypervisor?