I've been trying to think this through. Your idea should work but there are complications.
From the two provider perspective, they will accept the outer tag you provide that matches the service details and transport it. So that part is not an issue. The complications will be on how you get this bundled in your infrastructure.
As I mentioned your QinQ will need to land on a separate port from the SP port on both ends. You create the SP matching tag out this port then need to get it into the switch again for egress on the SP facing port. If this tag is only used for the service transport this can probably just loop between two ports on the switch then be available for egress to the SP. But if this is used on the network you will probably have to change the internal use tag on that vlan.
This would all be best to lab up in detail for testing.