I do not understand the way you defined those angle?
I would suggest you use (x,y,z) coordinate.
[img]http://www.phy.ntnu.edu.tw/demolab/phpBB/pics/2_2_collision2d.png[/img]

Assume $\vec{r_a}$ and $\vec{r_b}$ are center of those two balls. And the radius are $R_a,R_b$.
Let $\vec{d}= \vec{r_a}-\vec{r_b}$ which is the relative vector between two centers.
Collision occurred if the length $|\vec{d}|:
The next step is to find two components of velocity vectors $\vec{V_a}=(V_{ax},V_{ay},V_{az}),\vec{V_b}=(V_{bx},V_{by},V_{bz})$:
1. velocity components parallel to $\vec{d}=(d_x,d_y,d_z)$
$\vec{V}_{ap}=\vec{V_a}\cdot \vec{d}/|\vec{d}|,\vec{V}_{bp}=\vec{V_b}\cdot \vec{d}/|\vec{d}|$
The time step to move backward $dt=\frac{R_a+R_b-|\vec{d}|}{|\vec{V}_{ap}-\vec{V}_{bp}|}$

Hints: how to calculate inner product $\vec{V_a}\cdot \vec{d}=V_{ax}*d_x+ V_{ay}*d_y+V{az}*dz$

2. velocity components perpendicular to $\vec{d}$
$\vec{V_{an}}=\vec{V_a}-\vec{V_{ap}}, \vec{V_{bn}}=\vec{V_b}-\vec{V_{bp}}$
The above two component will not change before and after collision

You can check out previous posted message. e.g. [url=http://www.phy.ntnu.edu.tw/ntnujava/index.php?topic=4.msg9#msg9]How to convert 2D collision into 1D[/url]

Just add one more component (z) if you want to transfer from 2D(x,y)to 3D(x,y,z).

It will be much easier if understand the meaning of inner product between two vectors- Help you find out projection of one vector into another vector.