Controlling the switch directly from a comparator is not a good control scheme. When the output is low, you want to do a pulse. However, your scheme simply turns on the switch when the output is low. That's not a pulse. It relies on enough current to build up in the inductor to not only match the load (that's when the voltage stops dropping), but then charge up the output cap to the regulation threshold too. It is very hard to guarantee the inductor doesn't saturate under the maximum load.
Note that this is what happened when the supply was first turned on. Since the output was way below the regulation threshold, a large current built up in the inductor by the time the output voltage got to regulation. This large current kept going, so caused large overshoot. In a real world case, the inductor would have reached saturation well before that, causing other problems. Your simulation apparently didn't take saturation current into account. Note that 12 V applied to 47 µH for only 100 µs causes over 25 A to build up. Take a look at your simulation and see what it thinks the inductor current is when the switch first turns off after startup.
However, you can still do sortof what you are asking about. Instead of having the comparator control the switch directly, have it control a oscillator that runs the switch. Figure out what frequency and duty cycle you need for maximum load, and set the oscillator to that. The comparator then either kills the oscillations or not. These kinds of supplies are simple, robust, and with good transient response. The downside is larger ripple than when a control loop carefully tunes the duty cycle to match the load.
For many applications that aren't too ripple-sensitive, a pulse on demand or oscillator-killing system can be appropriate.