Is It Okay to Leave the Connection Open and Set CommandTimeout for Long Durations?
I solved this by creating a list of tasks and then starting all the long running tasks at the end of the processing and did not wait for them to finish.  This way, the program is able to exit.