You're mixing things up a bit. You've kind of got the gist of it but not completely.
Let's compare General Purpose Microprocessors, Microcontrollers, FPGAs, and ASICs. You've lumped microcontrollers and microprocessors together, when you really shouldn't.
General Purpose Microprocessors: These are the desktop and laptop processors, Intel Pentium chips, AMD Athlons, etc. These are expensive, very high power (watts), high-performance processors. They require an enormous amount of supporting circuitry in order to operate.
Microcontrollers: These classically are devices such as 8-bit Atmel AVRs, Microchip PICs, and many others. They are usually cheap, low-speed, low-performance, low powered devices, and often require very little supporting circuitry to operate. 40W is low for a CPU, 40mW is high for a microcontroller. They have very little memory, often having only 4-8K of SRAM, and 64KB of flash memory.
The processors in many applications, such as cell phones, blur the lines between the general purpose microprocessors, having higher performance and greater memory, but still low power. There are many ARM products that are making headway in the microcontroller realm that have performance capabilities vastly greater than the microcontrollers described above, with admittedly much greater power consumption, but similar in terms of little supporting circuitry, and cost. The processors in a digital camera for example, might be a chip that doesn't fit into either bucket very easily (and will probably have a beefy DSP to go with it).
FPGAs are economically in the middle of microcontrollers and ASICs. They give a trade-off high-speed and low power, but at reduced flexibility and increased complexity. Writing VHDL or Verilog for them is much more complicated than writing C for a microcontroller. These days, unless your application has a lot of analog components to it, ASICs aren't often more cost effective than FPGAs. An FPGA also is neither a microprocessor nor microcontroller, however, you could program one to function as a microcontroller, provided it has the right peripherals.
Application-Specific Integrated Circuit (ASICs). These are custom chips designed for a specific task. In my experience, the ASIC label goes on chips that are designed for a single-customer/single product, not just simply how specialized they are. I personally wouldn't call anything out of the digi-key catalog an ASIC, just an IC. Even something like the TI ADS1298R, a chip specifically designed for ECG devices. ASICs are used for specialty products that have constraints of speed, power, or size, where no existing general purpose part can suffice. An ASIC is not necessarily designed for maximum speed, it could also be for low power consumption. An ASIC can do it all, and give you whatever combination of speed, power, and size you need, but getting there will cost you more than any other option.
Again, like FPGAs, ASICs are neither microcontrollers nor microprocessors, but you could implement one in an ASIC. However, doing that would be so outrageously expensive and complex, that you need to rethink what you are doing. Instead, you would implement a device that computes some small piece of the puzzle, the element that is in the tightest loop of your application, then use general-purpose parts for everything else.
And of course, as alluded to, there are a lot of devices that don't neatly fit into these buckets.
Lastly, general purpose microprocessors aren't necessarily the slowest of the bunch, in fact the desktop processors are insanely fast, exceeding almost everything FPGAs are capable of. However, they also require tons of power compared to an FPGA. So whether you want to use a regular processor or an FPGA will depend whether your application is plugged into the wall or running of a tiny battery.