I just spent a while trying to do the same thing, but I have got it working. I think your issue is how you are "calibrating" the esc. In my experience, initially setting the throttle to 2000 to try and set the max and min throttle positions just put the esc into programming mode, which sounds like you are experiencing a similar issue given the beep pattern you are hearing. From what I can gather reading the data sheets, this is because we should be using a PPM signal to control the esc rather than a PWM signal. When using the LED control library to send a signal, it is generating a PWM pulse, not a PPM pulse. Instead, try using the servo library as this generates PPM pulses that can be read by servos, and lucky for us, brushless motor drivers too.
With this done, rather than try to set the throttle position high and low to follow the PWM arming sequence, try just setting the throttle to 1000 to follow the PPM arming sequence. After this, your start up process should go like this: power on (three ascending beeps), low throttle (one low beep, one high beep), now you are free to increase and decrease the throttle as you'd like. If this doesn't work, I have a slightly more convoluted method you can try which should be fail-proof, though it does require an Arduino.
For reference, here are links to the BLHeli github. I recommend looking at both the BLHeli and BLHeli_S manuals to see the difference between PWM, PPM, and the arming sequence for both. It should start to make a little more sense why your "calibration process" was putting your esc into programming mode (read the "Arming Sequence" section in the BLHeli_S manual). Also note that Github only shows a preview of the manual, you will have to scroll all the way down and click on the 'more pages' button. Good luck!
BLHeli_S manual BLHeli manual.
-Aidan