It seems this works fine when the user hasn't already visited the destination domain. They land on that domain and their experience cloud ID is set to the one specified in the query string.
If they have however already previously visited the destination domain and thereby have an experience cloud ID, it doesn't work. The Experience Cloud ID service doesn't run and the visitor ID is not synced.
Is this intended behavior? Should it only work for visitors who haven't previously been to the destination domain? If not, can I force the ID service to run and overwrite the existing ECID with the one from the query string?