I will expand on soakley's answer to develop the formulas describing the conditional mean of the product of two uniform distributions.
The conditional mean is the integral of $z$ times the PDF from the lower boundary up to $z$ depending on the case and divided by the CDF at that point:
$$
\mathbb{E}[Z|Z \le z]=\frac{\int^z z f_{Z}(z)dz}{F_Z(z)}
$$.
This will yield the formulas I was looking for in this question:
$$
\mathbb{E}[Z|Z \le z]=
\begin{cases}
\frac{- \frac{a^{2} c^{2}}{4} + \frac{z^{2}}{2} \log{\left (a \right )} - \frac{z^{2}}{2} \log{\left (\frac{z}{c} \right )} + \frac{z^{2}}{4}}{- a c + z \log{\left (a \right )} - z \log{\left (\frac{z}{c} \right )} + z}
&, ac \le z \le bc \\
\frac{- \frac{a^{2} c^{2}}{4} + \frac{b^{2} c^{2}}{4} + \frac{z^{2}}{2} \log{\left (a \right )} - \frac{z^{2}}{2} \log{\left (b \right )}}{- a c + b c + z \log{\left (a \right )} - z \log{\left (b \right )}}
&, bc \le z \le ad\\
\frac{\frac{a^{2} c^{2}}{4} - \frac{a^{2} d^{2}}{4} - \frac{b^{2} c^{2}}{4} + \frac{z^{2}}{2} \log{\left (b \right )} - \frac{z^{2}}{2} \log{\left (\frac{z}{d} \right )} + \frac{z^{2}}{4}}{a c - a d - b c + z \log{\left (b \right )} - z \log{\left (\frac{z}{d} \right )} + z}
&, ad \le z \le bd
\end{cases}
$$
What helped me solve this was the sympy symbolic library. Find attached some code in python highlighting the steps:
from sympy import *
from sympy.stats import *
init_printing()
x,y,z,u,v,a,b,c,d = symbols('x y z u v a b c d')
k = (b-a)*(d-c)
F_uv = integrate(z/x-v,(x,u,z/v))
F_uv
Derivation of first case:
F_Z = (F_uv.subs([(u,a),(v,c)]))/k
F_Z
f_Z = diff(F_Z,z)
f_Z
cond_F_Z = integrate(z*f_Z,(z,a*c,z))/F_Z
simplify(cond_F_Z)
N(cond_F_Z.subs([(a, .5), (b, 1.5), (c, .4), (d, 1.6), (z,.55 )]))
Derivation of second case:
F_Z2 = (F_uv.subs([(u,a),(v,c)])-F_uv.subs([(u,b),(v,c)]))/k
F_Z2
f_Z2 = diff(F_Z2,z)
f_Z2
cond_F_Z2 = (integrate(z*f_Z,(z,a*c,b*c))+integrate(z*f_Z2,(z,b*c,z)))/F_Z2
simplify(cond_F_Z2)
N(cond_F_Z2.subs([(a, .5), (b, 1.5), (c, .4), (d, 1.6), (z,.7 )]))
Derivation of third case:
F_Z3 = (F_uv.subs([(u,a),(v,c)])-F_uv.subs([(u,a),(v,d)])-F_uv.subs([(u,b),(v,c)]))/k
simplify(F_Z3)
f_Z3 = diff(F_Z3,z)
f_Z3
cond_F_Z3 = (integrate(z*f_Z,(z,a*c,b*c))+integrate(z*f_Z2,(z,b*c,a*d))+integrate(z*f_Z3,(z,a*d,z)))/F_Z3
simplify(cond_F_Z3)
N(cond_F_Z3.subs([(a, .5), (b, 1.5), (c, .4), (d, 1.6), (z,1)]))