I have a simple Arduino Mega working over USB. I use a USB “host” module from Hobbycomponents connected to Serial2 of the Mega (it has 3 serial ports).
I can send CAT to the DUO and get an answer. I can also receive CAT from the DUO so that my local display is always the same as the DUO. That is two-way comms.
So far I have implemented Frequency tuning, mode and TX/RX. but the basic structure is there to expand the command set.
I have run into several problems of interrupt compatibility and of timing… so the app is not very stable… but I am working on it.
I would not expect the Arduino Mega to be capable of fast EXTIO comms, but it has a mucj bigger memory than the UNO.
The only programming experience I have is in C for the Arduino, nothing for the Raspberry Pi, though I expect it could do a lot more.