In my experience, the simplest way to implement a solution for this would be to do what is minimally required in your command/handler, and then define an event handler which will do the subsequent processing needed. Event handlers can dispatch a command, that's a completely valid use case. Sagas are a tool for when you need to dispatch a particular command when multiple different events occur. In your scenario, if your application domain allows for it, I would use the register user command to validate the incoming data (such as email, making sure it's not used elsewhere), and then create the user record. Then, simply emit an event on the EventBus to the rest of the system that a user has been created, and have an event handler respond to that to create a Project
record.
If your problem domain requires that a user cannot exist without a project, then you need to determine what level of consistency you need in your application. Is it acceptable for a user record to exist without a project record if it means that eventually the system will associate the user with a project? If so, then the above example would work well. But if you are in a circumstance where it's a requirement for the user to always be associated with a project, then you need strong consistency and should create both in your register user command.
The answer is subjective to your individual application's requirements. I would just encourage you to generally opt for handling things in your event handlers, and then reach for Sagas when you find yourself with multiple event handlers doing the same thing for different events. That's the use case for a Saga, when event X, Y, or Z occur, dispatch command A.
Good luck!