The right way to get back-channels through ssh is through the agent forwarding. "Agent forwarding" is really just a magic TCP connection that follows you around and always goes back to your home host. This requires a bit more infrastructure (need to make a fake "agent" that proxies to a real agent or to your bespoke app, as appropriate), and ideally coming up with some way to let multiple "back channels" coordinate, but once you have that it's pretty slick.
There's only one implementation of this idea I've seen in practice, though there are plenty of other potential uses: ssh-xfer.
-- Nathaniel