Latching Solenoid Arduino

I calculated using this calculator.

Doing it again I'm wondering what values I used...

3Ω load, instantaneous voltage 6V (that's the minimum the solenoid needs), 20 ms discharge time (minimum time required for the pulse), 9V supply, gives me just over 6 mF needed. So 6,800 µF should work.

100 ms time needs just over 30 mF. That's getting expensive. 33 mF, 16-25V electrolytic caps list at USD 4-4.2 a piece at Digikey. Charging that cap back up to 9V through a 1k resistor would take a few minutes...