After heading down a complex path with Arduino and a motor controller with many more features than are required I think I can simplify the build by switching to a Phidget motor controller (1064 – PhidgetMotorControl HC). Its all in one (rather than Arduino + controller), has Python (and many other) libraries, and has built-in inputs for sensors as required. The only issue with the HC is the height of the terminator block – I’m checking this at  the moment.