Arduino är inte super snabb men är du säker att du får ut max? vet inte mycket mycket data du måste föra över men arduino kör 16Mhz, du borde kunna få upp det i iaf 1Mbit över SPI om du inte har extremt mycket annat som kör, en ascii tar 8bit.
1E6/8 = 125 000, med 125 000 borde du ha så det räcker och blir över att skicka med då du bara skickar ett bar chars antar jag, så vi snackar överföringstider av ett par ms kanske max.
Ditt problem är nog snarare latens av olika slag, det löser du genom att effektivisera koden och lära dig alla arduinos olika hårdvaru grejer etc, interrupts kan nog hjälpa här t.ex.
Menar inte att verka negativ, du kommer tjäna mer på att lära dig vad den faktiskt kan göra istället för säga vad du vill den ska göra, i vissa fall kanske du måste ha viss hårdvara runt för att lösa vissa saker osv. Det är lätt att använda men svårt att bemästra saker som t.ex. arduino, jag är inte fyskam på det, senast i våras byggde vi en robot med motorer och sensorer på min utbildning med just arduino som kärna och kan säga att jag är en av de bättre i min klass av ~50+ Elektroteknikstuderande på just arduino och programmering. Jag vet inte ens hälften av vad en arduino kan göra på rak arm och har ändå läst nästan hela Atmel manualen för chippet.
Över USB kommer du aldrig få något bra resultat är min gissning, tror du underskattar vad du kan göra med I/O med, om du bara ska switcha pga olika conditions så varför inte bara länka Arduinon och Pi'ens I/O och sköt det så? RPi är absurt mycket snabbare än arduino så den kan lätt ta emot sådana signaler och ha ett loopande program i bakgrunden som gör det du vill beroende på input?