For anyone interested, I think I found the solution to my problem. The problem wasn't with doConnect.
First, the 118 error was caused by lightsleep... I think. Since lightsleep allows RAM to persist, when it would wake up it would still think wlan_sta was active, even though it wasn't. Adding wifiCfg.wlan_sta.active(False) at the end turned the network off before going to sleep. That way each time it would connect as it should.
Next, I kept getting error 23 after a few posts. This was caused by not closing the socket that was opened by the request and stored in response. The memory was filling up with socket objects, and running out of room. Calling request.close() removed the socket and freed up the memory. Now it's working just fine.