How to know when serial has finished sending

I thought as much. Delay too long and the other end can reply and you miss the first byte, delay too short and you screw the last byte. When my engineers have tackled this in the past we found it best to have a packet format that was tolerant of loosing the first and last bytes. But then we were in control of the packet format.