My brother and I built a DIY unit. I bought two of the exact same Quartz element model toaster oven, at the thrift store. I doubled the elements, in one of the ovens; 2 above and 2 below. We used a PIC18f4550 Microcontroller, with a custom .jar GUI program, running on a laptop. It has PID control. The chip is able to drive, directly, the control input, of a Crydom solid-state relay. A Max6675 converts the K-type thermocouple.
The build went well and all facets operated as planned, except two... The oven does not heat fast enough, nor does it cool fast enough. This is due to needing more elements and forced air cooling. Actually, convection heating would be a big help. Insulating the box improves heating, but slows cooling. So, the result is that the cycle, if not controlled manually, suffers significant overshoot and time lag.
However, it does a wonderful job! I really like it and use it all the time. But, I do not have to certify the heat cycle, to anyone.
The initial heat rise period lags and, when it recovers, the temperature rise is too fast. This could lead to shock. The rise to the reflow stage is usually acceptable. The fast rise to reflow lags, but is usually on-slope. But, there is extreme overshoot, here, due to the short 10 second duration. I manually operate the door, to prevent overheating; that works well enough. I have never had a component failure.
The heat cycle is stated by each component manufacturer, in the components' data sheets. The purpose of heating at certain temperatures and speeds is to eliminate thermal shock and over-heating stress, during the high temperature solder reflow period.
I have wondered, if a convection heat gun, in an old toaster oven body, sans heating elements, might not do the trick.
I say keep it simple, but certainly do it. SMDs are cheaper and take up less PCB real estate. The process is actually easier than hand soldering, IMO. I turn out some beautiful boards.