[Object] Fix: Singleton can't count on SpinMutex. Use std::once_flag hacking instead.

- It is possible when a ctor of a singleton calls another ctor of a singleton, and the two SpinMutex conflict on the same spin lock.