Best way to control heater coil in portable application
There are two reasons your MOSFET is getting hot. The first is that you're using it in linear mode. That is, you're biasing the gate to a voltage that gives you the wire power dissipation (and therefor temperature) that you want. The second is that you're not using a proper heat sink on your MOSFET. 

The first issue can be solved by driving the MOSFET at some switching frequency, usually 1 to 100 kHz, and varying the duty cycle, which is the fraction of the time that the MOSFET is on. This is called PWM (Pulse Width Modulation).

The second issue can be solved simply - just get a bigger heat sink. With a worst-case MOSFET power dissipation of ~ 3 watts, this doesn't have to be enormous.

Which is most efficient? If by efficient you mean least power, PWM is best. However, since you already have a power supply that will handle the linear case, it's not at all clear that this is an issue. Worst-case power dissipation for your wire is about 12 watts, and that's not a whole lot.

Which is most cost-effective? I dunno. It depends on how cheap you can get a heat sink, compared to something like a 555 timer chip.

Space-saving? Again, it's probably up to you. A bigger heat sink will obviously take more space, but so will the extra circuitry for PWM.