Software people won't like it but from a hardware perspective there is no reason two systems cannot have access to the same storage. If one only writes and one only reads there is no issue except trying to read from a file not yet complete. I am sure that can be resolved by simply waiting a prescribed amount of time before trying to read the file. If both systems want to read and write a simple semaphore can be created using files.
This would be a safe way to transfer data between systems. Unless the systems execute the files viruses on one system could not infect the other system. The infected file would be present but it would just be a file.
I have considered designing such a device myself but never seem to have the time. A development board with two USB slave ports (B) and one USB host port (A) could do it. Just pass all commands arriving on either slave port to the host port. Plug a USB drive or thumb drive into the host port. It wouldn't be quite that simple but that would be a starting point.