This is great, but why use raspberry pi? Seems like the same functionality would be easier and more robust using an embedded-type system like Arduino. Teensy boards in particular can act as USB hosts.
I've certainly been guilty of doing something "a worse way" simply because it's what I first thought of and was available to me, and you gotta strike while the mental iron's hot.