What actually causes gyroscope drift in IMU?
I always understood drift to be DC bias (you can think of it as a voltage offset inherent in all amplifiers and some sensors, even metal junctions can contribute to voltage offsets.) But its a little more than that.

Drift comes from a few sources: 


  The gyroscope drift is mainly due to the integration of two
  components: a slow changing, near-dc variable called bias instability
  and a higher frequency noise variable called angular random walk
  (ARW). These parameters are measured in degrees of rotation per unit
  of time. The yaw axis is most sensitive to this drift. A good portion
  of the pitch (attitude) and roll axis gyroscope drift can be removed
  within an IMU through the use of accelerometer feedback to monitor
  position relative to gravity. Filtering the gyroscope output within an
  IMU using a low-pass or Kalman filter is also a widely used method to
  cancel a portion of the drift error.


Source: https://www.analog.com/en/analog-dialogue/raqs/raq-issue-139.html


  So, which one is correct? Or maybe none of them??


The second quote makes sense, the first one does not. I think the first quote is referring to saturation error. Saturating the gyro is not the same as drift. Drift is more of a constant. Saturation error comes from hitting the upper limit of the sensor and doesn't contribute to error all of the time, drift does. I'd throw the first quote out the window.