I have a solution in which enables me to send data to the Arduino over a COM port (USB). I am sending raw 3 byte messages, and am using a logic analyzer (Logic Analyzers from Saleae - #1 with Professional Engineers) to watch the data being received on the Arduino side.
The interesting thing is that, very consistently, every single time I open my COM port (ie- restart the software) the Arduino will ignore the first 32 messages that I send. With each message, the "rx" LED will flash and the logic analyzer picks up that the data is on the rx line. only after the 32nd message, the TX line will briefly flash (it sends some data, which I am able to read) and then magically it will begin listening and responding to my messages.
This only happens with an Uno (I have tried several) and not with my Leonardo (which uses different Serial lines for USB and raw UART). Furthermore, When I instead swap out the USB connection for Bluetooth (using https://www.sparkfun.com/products/12577) directly to the Serial pins on the board, the issue does not exist.
I wondered if the USB -> Serial converter chip was mucking with the data, or attempting some kind of handshake. However, as I stated before, I am able to verify that the -correct- data is visible on the 'rx' line at the time of each message.
Recap: The first 96 bytes sent to the Arduino Uno are ignored each time I connect to it via USB.