Yes, including stage
and region
in every resource name helps keeping a consistent naming convention. However, it might even be better to not name resources explicitly at all, and let CloudFormation generate a name for you. That way, there’s no worry about name clashes.
Instead of calling resources directly by name (using your naming convention), you can include resource names and ARNs as outputs from your stack for others to reference. Or, if referencing the outputs from another CloudFormation stack is too much a hassle, then you can also output resource names and ARNs as SSM parameters which might be easier for others to consume.