unsure if it would be faster, but another option (which would require writing a little code) is midi over UART. even if its not faster for a full implementation of midi, its possible itd be faster if you have some constraints on the type of midi messages you want to send since with uart you can pretty easily specify exactly what you want to send and how. true midi might include more info than you need. you could also use a boatload of digital pins to send a bunch of bits in parallel, depending on how fast the read/write on those pins are. if you wanna get very super (probably needlessly) fancy, you could use a combination of the 2, more pins and more bandwidth cant hurt unless the processing required to combine a serial bus with a parallel bus is too much. a simple example of how it might help is if you expect to only be sending cc's and expect multiple changes of the same cc before a new one is changed, you could use the digital pins to specify the cc and the uart channel to specify the value. I'd try just using uart first though for simplicity's sake.
reliability: in my personal axo project (which uses uart to talk with another microcontroller which handles user input and visual feedback) I've never had an issue with a missed uart message, though I dont believe it has any failsafes by default (better nerds please tell me if im wrong). If you have issues, there are some pretty easy ways to put in things like acknowledgement, checksums, ECCs, etc.
I also havent yet had any perceptible latency, audio or visual.