1. There will be a hard outage when you change the number of workers for a VS. The firewall tables are structured differently based on the number of CoreXL instances, so VSs with different counts can't sync.
2. The 9700 has 16 real cores plus hyperthreading for 32 virtual cores total. You don't get that many per member, you get that many total. If you tell a VS to use 12 workers, it will have 12 workers on each of the members. I would not allocate more workers for all VSs combined than a member has real cores. That is, with two VSs, if one VS has 12 workers, I would only give the other four workers. Overcommitting cores isn't as bad as it is on a VM host (VM hosts need to wait for all of the committed cores to be free before doing work; CoreXL does not have this limitation), but it's still extremely bad for performance consistency.