The Nim CPS lib has some great docs that explain how it works conceptually, and why it's beneficial. <https://github.com/nim-works/cps/blob/master/tutorial/README.md>
You can suspend continuations at any point, and you can learn more about that on the CPS docs, especially the tutorial on how to implement coroutines with CPS. As for nim-sys, it does use Continuations like every other project using CPS, but it doesn't mean that it returns them and treats them like promises/futures. A continuation is just a container for all local variables and state inside a proc. These Continuation objects are constructed by the CPS transformation macro, so each Continuation only contains the state related to its proc, along with a pointer to the next "leg" of the proc. The code you write with nim-sys looks like sync code, but calls made to CPS procs can suspend seamlessly, no "await" required.