payload.lock() duty value 50 was fine, but payload.drop() duty value needs to be 82.
I took a 180fps 640x480 Raspberry v2 camera video. The .h264 stream uploaded to youtube is played at 25fps, 7.2 times slower than real. It takes 29 frames or 161ms between executing payload.drop() and "O" cube starting to fall. ESP01s, SG37 servo, lipo, 3.3V step-down converter and cabling/soldering total weight is 16.0g sofar, The drop payload is missing, will be superglued to "O" cube:
https://www.youtube.com/watch?v=lQSwGy93WCk&feature=youtu.be
I did convert the interesting part (seconds 9-11 of youtube video) to animated .gif, and selected to slow it down by factor 0.5. Therefore this animation plays 14.4 times slower than real: