Why is my N-channel MOSFET getting very hot and the power it provides to device increases with temperature?
Short answer: You're not giving it enough gate voltage for it to turn on completely. It needs 10V for the guaranteed Rds(on) of 40m\$\Omega\$. 

The BUZ11 is a fine MOSFET, but it is not designed to operate from a 3.3V drive voltage. With 3.3V on the gate (relative to source) it will only turn on partially, and will begin to heat rapidly with a heavy load. The threshold voltage has a negative temperature coefficient, so the hotter it gets, the more it tends to turn on. Needless to say, this is not a good way to operate the MOSFET. 

You could either get a MOSFET that has a guaranteed on-resistance with a 3.3V or lower drive voltage, or boost the gate drive voltage to allow you to use a part like the BUZ11. 

There may not be any MOSFETs that are as good as the BUZ11 with 3.3V drive (especially the 50V voltage rating), at any price. If you can reduce the voltage rating to 20V, there may be a number of them available- but in TO-220, I see only the IRL3103PBF, which is probably okay but not guaranteed at 3.3V drive. 

You could simply use a transistor to drive the MOSFET gate as so: 





This would also tend to protect your Raspberry pi from some types of failure and bad connections.. a gate to drain short on a direct-driven MOSFET would otherwise release the smoke. 

Note that "high" = "off" since the BJT acts as an inverter. If this is undesirable, you can add another BJT inverter.