Have you looked at Autel Maxisys?
Looks like you can code with it as well.
Meets what you seem to want with external device, can be used on multiple vehicles etc.
Pricey but could be an option for you.
I use E-Sys and ISTA+
It’s free or cheap, widely used, runs on my Mac with external USB HDD and ISTA is what BMW uses so also has technical documentation and torque values.