Large delays in code when using Serial.print, etc.

So, why are you surprised that sending 640 bytes takes time?

Why does readSensors() write to the serial port? Nothing in its name suggests that it is proper for it to do so.