I would be more inclined to set _retries to a value greater than zero, and only move to the collect phase if measure() returns OK.

This will inject a longer gap in the case where all of the retries fail, which should be rare; there is no value in waiting to try again, time doesn't heal I2C bus errors.