Did you try using the previous configuration as an initial guess to the numerical optimizer? If the next position is close to the previous one, the solver should be very quick.
Also, you can probably get much faster results if you obtain the gradient of the forward kinematics.
Also, you can probably get much faster results if you obtain the gradient of the forward kinematics.