> For a first pass, you could create a nanosleep for plan 9 that rounds > to milliseconds and then use sleep()
Sounds like a plan, because the man page for nanosleep() expects the underlying resolution to be implemented. The complexities of "does not interact with signals" can probably be ignored until further notice for present purposes. Being able to resume may take a bit of effort. ++L