" does work, until I add a interveneing switch with trunk ports in the middle" - why does the intermediate switch need to have trunk ports? Don't you just want the frames/packets to pass throught the switch unaffected?
I assume when you are using trunk ports at the intermediate switch you are stripping the Outer S-VLAN Q-in-Q Tag on Ingress and then adding the same Outer S-VLAN Q-in-Q Tag on Egress, yes? I'd also assume the MAC header is changing?
What happens if the Ingress/Egress interfaces are made into access ports of the same VLAN, maybe with MAC-Learning turned off to just pass through transparently??