Sorry can't develop it further (no time - heading out for the weekend) but
here's something with a couple Constraint tags that might work. They are a little off when animating in the viewport (because, I think, there's multiple calculations going on) but should be predictable in render.