the Arduino wasn't recieving it because of some handshake or Arduino setup time or something on port connection.
With most Arduinos, when the code on the PC opens the serial port, the Arduino is reset. It does not start immediately. It takes a few milliseconds to get booted up. Understanding that, and expecting it, and handling it (as the delay() does, is necessary. What would be better, though, is to not use delay() on the Processing end. Since Processing woke the Arduino up, it should wait only long enough for the Arduino to say "Hey, I'm awake now, and have had a cup of coffee. Let's go". (Or something like that...)