Don't write down too many equations to be solved, but produce the desired center ${\bf c}=(a,b)$ in a forward movement instead. Let ${\bf z}_i=(x_i,y_i)$ $\ (i=0,1)$ be the two given points, put $\epsilon:=1$ if the arc should go from ${\bf z}_0$ to ${\bf z}_1$ counterclockwise, and put $\epsilon:=-1$ otherwise.
Next, let $d:=|{\bf z_1}-{\bf z_0}|=\sqrt{(x_1-x_0)^2+(y_1-y_0)^2}$ be the distance and ${\bf m}:=\bigl({x_0+x_1 \over2}, {y_0+y_1\over2}\bigr)$ be the midpoint of ${\bf z_0}$ and ${\bf z_1}$. Then
$${\bf n}:=(u,v):=\Bigl({x_1-x_0\over d},{y_1-y_0\over d}\Bigr)$$
is the unit normal in the direction ${\bf z_1}-{\bf z}_0$, and ${\bf n}^*:=(-v,u)$ is the unit vector you get by rotating ${\bf n}$ counterclockwise by $90^\circ$.
Given $r>0$ the center ${\bf c}$ has a distance $h:=\sqrt{r^2 -d^2/4}$ from ${\bf m}$, and the given $\epsilon$ together with ${\bf n}^*$ tell us in which direction we should go. In vectorial notation the center is given by
$${\bf c}\ =\ {\bf m}+\epsilon\ h\ {\bf n}^*\ ,$$
so that coordinate-wise we get
$$a={x_0+x_1 \over2}-\epsilon\ h\ v, \qquad b={y_0+y_1 \over2}+\epsilon\ h\ u\ .$$
Given start angles and end angles you get
sX = offsetX + radius * cos(startAngle * PI/180)
sY = offsetY + radius * sin(startAngle * PI/180)
eX = offsetX + radius * cos(endAngle * PI/180)
eY = offsetY + radius * sin(endAngle * PI/180)
Multiplying an angle by PI/180
converts degrees to radians.
Best Answer
In fact, it's a 2D problem, you just have to choose the right coordinate system. Let $$\vec{P_2P_1}=P_1-P_2$$ the vector pointing from $P_2$ to $P_1,$ and $$n_a=\frac{\vec{P_2P_1}}{|\vec{P_2P_1}|}$$ the normalized (length $1$) vector, $$\vec{P_2P_3}=P_3-P_2$$ the vector pointing from $P_2$ to $P_3,$ and $$n_b=\frac{\vec{P_2P_3}}{|\vec{P_2P_3}|}$$ the normalized vector. The angle $\alpha$ between these two directions is defined by the scalar product: $$\cos\alpha=n_a\cdot n_b.$$ Clearly, $P_c$ lies on the bisector of this angle. The distance from $P_2$ to $P_a$ and $P_b$ must be the same, $r/\tan\frac{\alpha}{2}$, so $$P_a=P_2+\frac{r}{\tan\frac{\alpha}{2}}\,n_a$$ and $$P_b=P_2+\frac{r}{\tan\frac{\alpha}{2}}\,n_b,$$ and you get $P_c$ from $$P_c=P_2+\frac{r}{\sin\alpha}\,(n_a+n_b).$$
While these formulas show the simple geometry more clearly, @Nominal Animal pointed out that it might be better to avoid calculating trigonometric functions. Indeed, we can use the cross product to express $\sin\alpha$: $$\sin\alpha=|n_a\times n_b|.$$ For calculating $P_a, P_b$, we can use $$\tan\frac{\alpha}{2}=\frac{\sin\alpha}{1+\cos\alpha}=\frac{|n_a\times n_b|}{1+n_a\cdot n_b}.$$ So everything can be determined by vector operations, alone.