The "Startup Sync" mechanisms are based on a binary semaphore, a boolean flag, and a counter.
The handling of these various separate entities leaves several opportunities for race conditions to occur. At a minimum, this could cause "WaitForStarupSync" to pend incorrectly, but could have other more serious side effects (unknown) depending on how the apps are using this.
This is one problem that the EVA team at GRC are experiencing while deploying CFS on the Xilinx Microblaze platform.