To verify I plugged the gyro into port 1 and jiggled it by hand. I couldn't get any drift to speak of. I hooked it back up to my test robot and it was still rock solid. Then I stared moving it to different ports to see if that made a difference. The sticky drifting returned when I plugged into port 3. After I got it to drift in port 3 I wend back to port 1 and it drifts.
I repeated the experiment today and got the same results. Good performance in port 1, bad when I moved to another port. So I turned off the brick and turned it back on with the sensor plugged into port 3. Now port 3 is solid and moving to other ports (moving wire with brick on) made the sensor susceptible to drift.
So it looks like something happens when you turn on the EV3 that doesn't happen when you run a program or when you plug in a sensor with power on. Whatever it is, it is very important to the operation of the gyro sensor. If the gyro is plugged in before I turn on the EV3 saturating the sensor (at 440 deg/sec) causes sensor inaccuracy, but does not install a persistent offset in the angle reading. Unplugging the sensor and plugging it back in does make the offset go away, but the sensor will acquire an offset if it saturates again. Resetting the sensor from software does not correct the drift.