I have made the following changes:
I have removed the AT+CRSM commands used in the modemSetup function. These are probably not needed as discussed with @JohnJMaurer.
I have reduced the delay between consecutive AT commands from 100ms to 10ms. The AT manual states it is wise to wait 100ms after receiving the final result code before sending the next AT command. I think this is in case there is a URC being sent after result code. This program only waits for result codes after specific commands, so I think 10ms is fine.
I changed some of the timing of how the "+UUSORD:" URC is handled in the httpPost function.
I updated the google docs.