Best way for naming schemas in SQL Server 2019
My personal opinion is that it is not a good idea. I tend to think of the schema as a namespace, to logically group related things together. 

Versioning should be handled (IMO) no different from other code, i.e. via a source control system. Changes to the data model should be handled via upgrades/migrations.

That aside, do you make a new copy of every procedure function when you change one procedure, or do you have an individual "latest schema" for every object? How does your code figure out what is the latest version of a particular procedure?