Serial call & response between two Unos

Yes, the delays sort-of work. But if the sending end is interrupted (by an interrupt, heh) then the delay may be longer between bytes. Reworking without delays is more reliable. Basically you just collect into a buffer as fast as you can (which in fact won't be that fast) but without delays. At some "end of packet" indicator (such as newline) you go back to the buffer and extract everything out of it.