A. if the cooperative kernel is launched on default stream, it will follow that semantics. Or
B. if the cooperative kernel is launched on any stream, it will block for any previously issued work to complete and block any work issued after to the same device?
If you specify a created stream, then it should obey the ordering expectations for that stream.
If you don’t (i.e. you specify the NULL stream) then it should follow the default stream semantics, whose behavior is documented on the page you linked. The behavior varies based on whether or not the legacy default stream behavior has been overridden.