Definitely, texturing is a final step. And Rutin's suggestion of testing pixel density is important. It's quick to check, and can help to minimize the amount of times you have to adjust UVs (and you may have to adjust more than once to get a UV layout that makes sense.)
As for my workflow, I love to see models without texture. Having a strong, interesting silhouette can do wonders. I will model as many details as I can before considering to UV. There's a fancy mode in Maya that generates a quick AO preview in realtime, I like to model with it on sometimes to help give a sense of depth as I pull out shapes.
I used to hate UVing. It is something that needs to be done with every model that I create. But, it's not so bad once you get used to it. Think of it as a challenge to yourself, to see how you can improve how you packed these UVs compared to the last model you tried. It's almost like art itself, trying to pack all these little UV islands together to maximize texture usage But certainly, you will be UVing every new asset you model.
At work, we primarily use Substance Painter or Designer to create textures. They are easily updatable, layering works well enough, and if you do need to change UVs, Painter (for the most part) will recognize and update your texture to match. We do have Photoshop, but honestly, I really only use it to edit an already existing texture, and that's only if someone lost the Painter/Designer source files in the first place.
Now, if you are absolutely stuck with Photoshop, and you must change UVs after doing a considerable amount of work, Maya has an option to bake a textured object using old UVs onto an updated object with new UVs. This works best as long as the geometry doesn't change, but it is a destructive process. You'll get a new texture for use in Photoshop with the new UVs, but will likely not be able to use any of your old layers if the new UVs are drastically different from the old ones.