Writing extra data causing Arduino Mega 2560 to miss sensor data
While the Mega2560 is not the fastest process around it should be fast enough to handle the amount of data you are looking to process.

You do need to understand what the functions you are using are doing though, as well as how internal buffering works and the data rate limitations you are facing on your various serial interfaces.

Serial::readBytes will block (wait to return) until the specified number of bytes are retrieved or until a timeout occurs. You should check the return value for number of bytes received unless you are absolutely sure there will be a byte received within the specified time. The default timeout should be 1000 milliseconds. This function is used rarely, more common is to use available() and read() because they give you more control.

Serial.write will block if there is not enough room in the transmit buffers for the data you are trying to send.

Now, you say 500 samples per second - but you do not specify how many bytes of data is expected to be received for each sample. A quick check on the datasheet indicates it may be quite a few - at least 5, likely more. Even at just 5, with 500 samples/packets per second, that's a data rate of 2500 bytes per second.

Now, say that there is a little bit more than 5 bytes... like 6 bytes per packet/sample? Your data rate is now 3000 bytes per second.

For each incoming byte you are sending out two bytes, with write("E") uncommented. Your output data rate is 6000 bytes per second.

With standard 8,N,1 communication that's 60000 bits. It is not possible to send 60000 bits per second on a baudrate of 57600.

This means that your .write calls will block and during this time the input buffers of Serial1 will fill up faster than you can read them. They will overflow and this will look like missed characters.