CQRS and CQS are like microservices and class decomposition: the main idea is the same ("tend to small cohesive modules"), but they lie on different semantic levels.
The point of CQRS is to make write/read models separation; such low-level details like return value from specific method is completely irrelevant.
Take notice on the following Fowler's quote:
The change that CQRS introduces is to split that conceptual model into separate models for update and display, which it refers to as Command and Query respectively following the vocabulary of CommandQuerySeparation.
It is about models, not methods.
Command handler may return anything excepting read models: status (success/failure), generated events (it's primary goal of command handlers, btw: to generate events for the given command), errors. Command handlers very often throw unchecked exception, it is example of output signals from command handlers.
Moreover, author of the term, Greg Young, says that commands are always sync (otherwise, it becomes event):
https://groups.google.com/forum/#!topic/ffffdcqrs/xhJHVxDx2pM
Greg Young
actually I said that an asynchronous command doesn't exist :)
its actually another event.