You want a power supply that reasonably regulates voltage and can put out 1/2 killowatt at 12 V. That's going to cost some money one way or another. If you add to that current limiting (current regulation) and adjustable voltage, it will cost even more money. These things take some engineering to do well, safely, with regulatory approval, and the volume won't be that high. That all means a commercial product that does all that will cost real money.
If you are going to draw 40 A, then maybe you should be using a higher voltage, like 24 or 48 V. 40 A is going to require thick cable and will otherwise create hassles. You can probably deliver and use 10 A at 48 V more efficiently than 40 A at 12 V. Note that the issue around efficiency isn't so much wasting the power, but dealing with the heat the wasted power causes. A 90% efficient 480 W supply will cause about 50 W of heat.
As for your current limiting spec, it seems you don't really want current limiting at all, but rather overcurrent tripping. That is also sometimes called a electronics fuse. Fortunately, unlike with current limiting, overcurrent tripping can be added separately after a canned supply. For sake of keeping a common ground for measurements and the like, I'd probably use a high side current sense resistor, with something like a INA169 to bring the signal down to the ground reference.
I'm am doing a project right now that includes two electronic fuses. A microcontroller is watching the current sense signal every 10-20 µs in a periodic interrupt. If the current is above the trip point, a counter is incremented. If below, the counter is decremented unless it is already zero. If the counter reaches a particular level, which means the current has been high for some pre-determined amount of time, then the output is shut off for two seconds.
You need to set the trip time long enough to allow for inrush as power on. Or, you apply the algorithm differently at power on. Right now I am using a flat 2 ms for one supply and 750 µs on the other, but that one does a soft start during which the fuse is handled differently.
20 ms seems like a long time, but is still faster than most real fuses take to blow. I'd look at the current profile at power on, and set the fuse a little longer than that takes.
You don't need extra fast switches after the current sense resistor. At most, they will switch once every two seconds, or whatever you set the fuse recovery time to. You don't want to make the switching time so slow that significant heat is dissipated in one transition, but a few µs as apposed to the more normal few 10s of ns should be fine.
Thanks to those who reviewed and commented. Looks like MTD6501G is not going to work because using it to drive external silicon to increase power handling would remove the feedback from the windings that the device requires.
DRV8301 or similar does seem to be the only option if you must build your own speed controller.
The Vedder ESC is what I will probably buy for some immediate uses, and think further about experimenting with DRV8301 or similar devices - but it is going to need a reflow oven to mount so that is another challenge to overcome.
Best Answer
Because they are cheaper and lower-tech - no need for tricky semiconductor devices. Also, switching electronics for high-power devices (1-5kW+, 1000V+) is tricky to implement (but nothing modern electronics can't handle).
Sometimes companies produce crap just because it's cheaper & gives some long-term income on maintenance, or they just have 50 years old production line deep in China's village which is nearly free to operate.