I have split my serverless code into two projects. One project holds the things that seldom change and take a long time to deploy. The other one holds the stuff that changes all of the time. So now I can deploy the more volatile stuff without touching the mostly static things.
My static serverless project creates an output file with the name of things like the user pool and domain. The more volatile serverless project imports this file.