Just adding a "me too": we are seeing this exact behavior down to the last detail. MTLCreateSystemDefaultDevice will not switch the window server to the discrete GPU, and setting the device in the CAMetalLayer does not force it either.
Opening Chess.app (or Photos.app) will force the change, and we'll then see it reflected in our apps.
The only other additional note we've got is that we don't see the problem when running in a fullscreen state, only windowed.