Note that using the serial port on Puck.js causes it to keep the oscillator on so it can receive serial data. This uses a bunch of power, so it'd be worth trying to power your Puck.js from the 3.3v regulator on your GSM module (which they usually have).

But shouldn't it be able to simply connect and disconnect the whole module like you would normally. And then turn it on when you need it? Would it always need a physical press of a button to get going? Must be some kind of hack to achieve that...

I don't think there will be an AT command (except for sleep modes). It's serial, so you need a computer on the other end to listen for the serial data - hence the modem is never going to be able to shut down fully if you intend to wake it up with an AT command.

The PWR pin is just one extra wire though - bringing the total to 5. It's not that bad!

when you use a mosfet to swith the gsm module on and off, and you use a serial connection to control the gsm with Rx,Tx, V and GND, would it be possible to use the V and GND from the serial connection to also turn the gsm on?

Since they are on and off at the same time.. That would save you connections to the board