constraining an empty to the intersection of two coplanar segments
I'm going to post what it is that I believe you are looking for.

If it is wrong, I can always come back and delete the answer.



What I did was add two empties:


The 'Base' located to the center of rotation of the rod which also has the driver on the y rotation. 


AND


The 'Top' which is parented to the z-rotation arm.


THEN

solved the triangle with a simple trig function using the view plane of X/Z.

You just need to know the absolute difference between the 'basex' &amp; 'topx' locations for the 'X-axis' for the horizontal leg of the triangle, then get the absolute distance for the 'basez' &amp; 'topz' locations for the 'Z-axis' for the vertical leg, and use the 'atan' function to get the angle of this relationship.

So I ended up with these four variables in the driver:

basex, topx, basez, topz

and I used this as the expression:

atan( (abs(basex - topx)*1.0000000000)  /  (abs(basez - topz)*1.0000000000) )

The reason for using the '1.0000000000' value was to force the calculation to be multiplied at this many decimal places for rotational accuracy.

Here's the Blend File:



NOTE: 


Select the rotational arm and rotate about 'Z' to see the effect.
Select the rod to see the driver in the graph editor
For some reason, the driver value can get stuck and not update the solution before the frame updates so maybe reducing the Multiply by 1.0000000000 to 1.0000 is good enough in this case as it should really decrease the effort of calculation. After doing this, and making the hole of the crank more fitting for the bent rod to twist and elongate elliptically, I was able to get a much better solve with the same logic.