We've been using the ADXRS453 since the 2015 season. I'm not sure how our code lines up against the WPILib code for this family of Gyros, but ours has multiple years of execution time on it... bug free.
https://github.com/Team2168/2016_Mai...c/org/team2168. In our implementation, comms with the sensor runs in a separate thread from the main robot. So timed events, like calibrating, don't block main program execution.
We have code kicked off from Robot.java which automatically detects drift while the robot is disabled (prior to match start) so if you've got a bad calibration (robot powered on and then moved onto the field - not stationary during initial calibration) it will get a new zero. This code is orig. stolen/inspired from 245's 2013? code, and we've improved upon it over the years.
Last year we also spent some time with the BNO055. This is an IMU that's in the $30 price range.
https://github.com/jcorcoran/BNO055_FRC Definitely a favorite of mine.
Both of these have more than acceptable performance over the duration of an FRC match.