(I2C) Wire.endTransmission always returns non-zero.

Perhaps the best you can hope for is to use a version of:
(From : \arduino-1.5.1r2\hardware\arduino\sam\libraries\Wire\Wire.cpp)

static inline bool TWI_WaitTransferComplete(Twi *_twi, uint32_t _timeout)

and/or

static inline bool TWI_WaitByteSent(Twi *_twi, uint32_t _timeout)

This checks for the byte being sent, and if an NACK hasn't been received (which is good). You would need to invert the return value...

ALSO (noticed in MPU6050_read, maybe other places too),

Wire.endTransmission(false);

does not work as expected in 1.5r2. I'm fighting this in my code now.
see:
http://arduino.cc/forum/index.php/topic,137607.0.html

-Chris