Chemicals no good, as you stated.
.
Assassin snails do indeed work, but it takes time to obtain them, and also takes time for them to do the job.
.
One or two small, young, 1" to 2" long Clown Loaches will eat the snails, but they also take time to do their work. They are also a pain to recapture when you want to remove them--warp speed little devils. Additionally, "what goes in" the Clown Loaches must "come out", and this puts the beginnings of a high pollution load on your water column while you wait for your filter(s) to clean up the "...out" part.
.
The cucumber method, or better yet, a zuccini, works safely and quickly---damn near instantly, if you can consider 12 hour shifts to be "instant". You can then add the Assassin Snails once the bad snail population has been knocked back.
.
-----------------------
How To "zuke":
.
Cut ONLY one or two slices off the zuccinni, about 1/8" to 1/4" thick, then put the remainder of the zuccinni into a "freezer" type zip-lock bag, with all of the air squeezed out, and then into the coldest part of your fridge (but not in the freezer-it will turn to mush in a day). You need long slices, not short ones, so slice parallel to the long length of the zuke. Do not cut the entire zuke into slices---only the number of slices you will use at one time!!!
.
Place ONLY the one or two slice(s) into the tank, on the bottom, and with one end in contact with the substrate, so the snails can climb onto it/them easily and quickly. Your fish will also eat the zuke--that is safe.
.
Use either the "night shift" method, or the "day shift" method, meaning either place the slice in before you go to sleep, and remove it when you wake up, OR place the slice when you leave for work, and remove it when you get home. The minimum time period should be 6 hours, no less. Max of 15 hours though, to prevent the zuke from polluting the water.
.
The slice(s) will be COVERED with snails.
.
Zukes are cheap. So, do this as many times, for as many days, as you want to (or need to) to get the snail population down. You can also do this once in a while to manage the population once it is down, so don't worry about getting the snail eggs. Oh, and the tiny little snail babies will also climb onto the zuke.
.
Also, BEFORE you cut fresh, new slices, cut and THROW AWAY a 1/8" to 1/4" thick slice from the already cut side of the zuke, so that you are exposing a FRESH starting face of the zuke. Reason: That day-old exposed face has already started to decay in the fridge, and you don't want THAT face in your aquarium.
.
-----------------------------------------------------
If you like Clown Loaches, and if you decide to get one or two, then use both methods. Zuke the snails for a week or two in order to get a tremendously QUICK control of the population, and then add one or two small Clown Loaches (1" to 2") when you can. The Clown Loaches can grow to 12" long, but they grow slowly. They are also one of the VERY, EXTREMELY few fishes that privately owned fish stores will take back when they have grown too large for your tank, or for your own preferences.
.
If you do go with the Clown Loaches, and when you do give them away because they have reached 4" or 5" and larger, you can just replace them with one or two new small/tiny ones.
.