If the slots are supposed to represent different full-fledge environments (with different backend services, databases), then the service app must have the necessary configuration architecture to adjust its runtime configuration parameters dynamically on such swap events, instead of traditionally relying purely on reading static config file values during app initialisation.
When does a swap really happen for any particular server instance? When all existing requests to the server are fulfilled and closed, with no more additional requests routing to it? I tihnk it'd be important for a server to be completely "uncontactable" and given notification of a slot swap event and time to reconfigure itself. Sometimes depending on environment there may be a whole different set of data to retrieve and cache before it can work properly according to the environment.