I guess I tend to think in terms of % stalled. You never want it to be 100% stalled for more than a fraction of a second. Example, on some of my extreme hill climb tests, at some point the bike comes to a complete halt. Often it's because I wheelie off, but if not I try to get back off the throttle when the complete stop is imminent. A complete stall may do all kinds of damage to motor and controller.
For typical hubmotor commuters bike kits, a stall tends to begin by about 15 mph when under full load. That's your typical 9 continent, muxus dd, conhis, or whatever kit running on 36v. Full load means you are climbing a hill or hauling a great deal of weight. 15 mph cruising on the flat is not stalled, it's just running the motor slower. Stalled is when the motor is lugging under the load. Towing your buddy back up the hill on his skateboard is likely to be loading it enough to begin to stall.
Slower than that 15 mph under a heavy load, you can see the heat start spiking on a thermometer inside the motor. On a cycleanalyst, you'll see amps maxing or nearly maxing. By 10 mph, I'd call that motor in a definite stalling condition, even if it is only 50% stalled. I really don't know what percentage it would be, but suppose it was 50%. That would mean that 50% of the wattage is making heat. So if you see 900w on a CA, you are running a 450w heater. It will warm up quite quick. Now suppose that 15 mph speed is only 10% stalled. Now it's 90w of heat, and possibly the motor can still shed the head fast enough to keep the motor temps below the melting point indefinietly.