I'm not against this, but it's fundamentally different than the workflow the program was designed for. If the number of parallel copies is configurable and you could have an arbitrary number of drives copying at once, how is that data aggregated and displayed effectively and in a way that scales well? How would separate workflows be handled? (i.e. say multiple backup drives need to be connected so multiple prompts would need to be shown.) Is it sufficient to do this in threads or would it require multiprocessing to get better throughput?

Basically it'd be a fairly substantial rewrite, I'd assume it'd involve moving towards an architecture with a main controller thread that talks to sqlite and the WxWidgets GUI frameworks and then several child/worker processes with quite a bit of inter-process communication in between.

I'll leave this ticket open if someone wants to take a stab at it, but it's probably not something I'll get around to doing.