The serial settings are derived from the rsterm and this forum with 8N1 and AT&K0 where I can't say why I should turn off flow control.
Further is the speed of 19200 baud a bit low and the PC quite fast. This aspects together with several ser.send commands, each with a timeout set to zero, might access the serial port occaisionally at a moment when it is not ready and fail.
I consider (2) and (3) more as general flaws of untreated exit-conditions of the ser.read-while-loop in GPIO.py. I haven't had program crashes on the module - it's either sufficiantly slow or the flow controlof the virtual serial port between python interpreter and modem is different.