I believe one of the reasons it is slow is because it is also updating the firmware on any number of connected ECUs over the CAN bus. This typically means the image has to be sent over a 500kbit/s bus so there is a limit to how long it has to take.
I would naively expect it to just do A/B updates, which unless I'm forgetting something shouldn't incur a speed penalty? (Other than that the update doesn't get applied until restart)