DMPInit() was calling Delay() before Timer0 was initialized. Rearranged the order of initializations and separated the timing portion of Timer0 initialization for clarity.
Reorganized MPU5060 logic for clarity and consistency. Noticed that the clock source wasn't being set when initializing DMP, but found that setting to a gyro clock as recommended gave unstable results (seems to be a problem in the computation of the quaternions that leads to blocked I2C). Using the internal 8MHz oscilltor for now.