Is there a better way to do this? Yes, do it digitally. You can eventually get something stable with analog parts, but it will be easier to do and a lot easier to tweak if done digitally. Then you also don't have problems of drift, leakage current issues with long time constants, temperature dependence, etc.
You can start with a simple PI controller in firmware. That's a PID controller with the D term zero. There are other, perhaps better, control schemes, but PI will be simple to implement and there is MUCH information out there about it. So much that there is no need to go into details here. Look for "PID controller" and you will find lots more than you can read in your lifetime. You can always come back here if you have specific implementation questions.
Given the very slow response of your system, any microcontroller with a A/D can do this job. Conceptually you need a D/A to produce Vcontr, but that can be done by low pass filtering a PWM output, which is a very common thing for microcontrollers to have. Perhaps your system can even be controlled directly by pulses, in which case using PWM directly will be more efficient and eliminates the step of converting it to a analog voltage.