--Got IMU to send the timestamp unsigned long int with a single Serial.write() call by using a memcpy to put the data into an unsigned char buf.  Modified the receiving side on the Gumstix accordingly and it works.  Unfortunately, it didn't seem to speed things up any--still getting a rate and standard deviation similar to yesterday (on a run of ~2 minutes, or ~2500 IMU samples).  It occasionally gets a single sample at 50 Hz, but the average rate is less than 1/10 of a standard deviation from the lowest rate observed.  Going to try some quick changes to slow down the rate at which the Gumstix is requesting data from the IMU to see if that makes things more uniform.
--Tested setting the SIGALRM timer to 25, 20, and 10 Hz, and did not get results that were any better than set at 50 Hz.  In fact, the results at 50 Hz and 25 Hz were nearly identical, which leads me to believe that the fastest that we can poll the IMU using SIGALRM is 25 Hz.  At 20 Hz and 10 Hz, the results were actually less uniform--a higher standard deviation, and a larger range between max and min rates.  Now going to try to rebuild the run-imu program and IMU firmware to have the Gumstix just listen on the port and have the IMU pump out data as fast as it computes it.