Nice stuff. Raspberry Pis are generally pretty terrible at running servo's though. Adding an intermediate Arduino would work wonders (I appreciate the complexity would jump significantly though)
Turns, out, it's actually very reliable in practice. I'm trying to work out at the moment just how far I can go with more powerful servos: https://raspberrypi.stackexchange.com/a/104662/42583. There are limits, but they seem to be greater than I expected, especially when the only power to the Raspberry Pi is provided by a MacBook.