Since you're using an Arduino, the nice thing about a servo is you already have a 5V DC supply to provide the power. The low-current control signal to the servo can come from a digital output pin so little if any additional hardware is required.
A DC gearmotor or stepper-motor would need some kind of transistor-based PWM driver from an Arduino as the required drive voltage would not be 5V DC and even if it were 5V the Arduino digital outputs could not supply the current. Of course there are Arduino shields for can motor drives and stepper-motor drives for a few dollars on eBay.
Maybe the manufacturers have "fixed" this but one annoying behavior I've found on some servos is they power up and jerk at seemingly full-torque to some random location. So if the full travel of the servo is mapped to the length of Gabe's ladder, Gabe might rocket to some arbitrary position when power is first applied surely resulting in a workman's comp claim. A related issue: on power-up you need to send some position command so unless you saved (e.g., in the Arduino's non-voltage memory) the last position command when you last employed Gabe, you again might be sending him rocketing up/down the full length of the ladder which might break something.
This is where the "fun" part of design begin. I'm not sure how the "drop" mechanism works on Gabe but if it uses some kind of clutch engage/disengage method, you could have Gabe drop to the ground whenever you lose power. Then when you start the next time you know that Gabe is at the bottom so you command the servo to the bottom and then engage the clutch.