Yes, that won't work right. The problem is in SEMI_AUTOMATIC mode on cold boot the modem is somewhat powered up, not fully powered and operational, but not asleep either.
Putting the modem into SLEEP_MODE_DEEP requires that the modem be on in order to send the AT commands to it, which is why you're not going into deep sleep.