Too Complicated/Expensive/Unreliable
The approaches you suggest require expensive and power-consuming hardware with complex signal analysis to extract water-level information.
All you need is a few $4 float switches arranged at different depths like this:
I had suggested this approach to another similar question.
Now, life is really simple. Each of the switches corresponds to a different water level (you might want eight of them 1ft apart?). As the water level changes, more (or fewer) of the switches will be closed.
This can be read with digital logic or a microcontroller extremely easily.
Upgrades
If you want to spend more money to improve reliability:
You could use two (or more) independent arrays in parallel and compare the results to detect sensor failures.
Use more expensive (higher quality) float switches
Increase the number of float switches
Well ... float switches are simple and reliable. Having said that, it is not quite as simple as detecting a DC voltage. Using DC, the electrodes would quickly be corroded (damage due to electrolysis).
The sensing circuit needs to use AC. There used to be a nice IC made by National that would do this, the LM1830N; but as far as I know it is has been obsolete for some time. The circuit is pretty simple to do yourself. Basically an oscillator is connected to a series resistor and capacitor which is connected to an electrode in the fluid. That electrode also connects to a comparator to sense the AC. A second electrode connects to GND (circuit common). When a fluid is present, the conduction between the electrodes causes the AC signal on the oscillator electrode to be attenuated. The resistor sets the sensitivity.
Here is a circuit I built a few years ago using a PIC12F683 :
simulate this circuit – Schematic created using CircuitLab
This circuit was for a dual-level fluid sensor that would turn on a valve when the fluid would drop below the FLUID_LO sensor, and turn off when the fluid reached the FLUID_HI sensor.
I'm afraid I'm not free to publish the source code, but I will describe the functionality:
SENSOR_CLK is a 50% duty-cycle square-wave output. The frequency is not critical. I used appx 8Khz.
The AN0 and AN1 inputs to the PIC12F683 are inputs to the A/D converter. The conversions are performed when SENSOR_CLK is high. If the voltage is sensed below 3.1V, the corresponding electrode is considered to be immersed in the fluid.
FLUID_HI and FLUID_LO are wires positioned such that they are immersed in the fluid when at the appropriate level. FLUID_COM may either be connected to a metal container holding the fluid, or be connected to a wire in the fluid and below the level of FLUID_LO.
When the wires are immersed in the fluid, the square-wave detected by AN0 and AN1 is attenuated and has a net DC component of about 2.5V. Resistors R1 and R2 may be changed to smaller values if a less sensitive circuit is desired. The 3.1V detection threshold (in firmware) may also be changed to adjust sensitivity, but it must be greater than 2.5V.
While I used the A/D converter in the microcontroller, other detection methods may be used. Some microcontrollers have built-in voltage comparators that may be used. It may also be possible to use general-purpose I/O to detect the immersion when SENSOR_CLK is low if the Vin high and low thresholds are well below 2.5V.
I chose to sense the voltages between the resistors and capacitors instead of the voltages on the electrodes because I felt that the internal clamping diode to VSS in the microcontroller might cause a net DC voltage on the electrodes.
Best Answer
The most common solutions are
1) use a float connected to a potentiometer like a petrol/gas tank does https://www.howacarworks.com/fuel-systems/checking-and-replacing-a-fuel-sender-unit
2) use an array of binary float switches, like these, but many other brands available https://www.cynergy3.com/blog/how-select-correct-float-switch
3) to use a circuit like yours with very small AC currents
4) use an optical sensor where the refractive index of the water causes a reflection or not. for example https://www.omega.com/green/pdf/LV170.pdf - many other brands exist
5) use an ultrasonic sensor to measure the height of water in the tank https://www.instructables.com/id/Measuring-water-level-with-ultrasonic-sensor/
6) use a pressure sensor to measure the height of water in the tank as washing machines do http://www.milanocomponenti.com/en/washing/pressure-switches-washing/washing-machine-pressure-switch/