I have switched to a directional(yagi) antenna with positive results so far. I was able to aim the antenna with a program that repeatedly sends AT+CESQ to the modem. Pointing the antenna slightly upward seemed to help clear some tree cover...
Socket commands seems much more responsive so far:
18:56:37.512 ->
19:06:34.122 -> ATE0
19:06:34.224 ->
19:06:34.224 -> OK
19:06:34.224 ->
19:06:34.224 -> AT+CEREG?
19:06:34.328 ->
19:06:34.328 -> +CEREG: 0,1
19:06:34.328 ->
19:06:34.328 -> OK
19:06:34.328 ->
19:06:34.328 -> Registered
19:06:34.328 -> AT+CGATT?
19:06:34.431 ->
19:06:34.431 -> +CGATT: 1
19:06:34.431 ->
19:06:34.431 -> OK
19:06:34.431 ->
19:06:34.431 -> Attached
19:06:34.431 -> AT+CGACT?
19:06:34.534 ->
19:06:34.534 -> +CGACT: 1,1
19:06:34.534 ->
19:06:34.534 -> OK
19:06:34.534 ->
19:06:34.534 -> Context Activated
19:06:34.534 -> AT+USOCR=6
19:06:34.670 ->
19:06:34.670 -> +USOCR: 1
19:06:34.670 ->
19:06:34.670 -> OK
19:06:34.670 ->
19:06:34.670 -> AT+USOSEC=1,0
19:06:34.774 ->
19:06:34.774 -> OK
19:06:34.774 ->
19:06:34.774 -> AT+USOCO=1,"api.thingspeak.com",80
19:06:35.593 ->
19:06:35.593 -> OK
19:06:35.593 ->
19:06:35.593 -> AT+USOWR=1,186
19:06:35.695 ->
19:06:35.695 -> @
19:06:35.695 -> POST /update HTTP/1.1
19:06:35.695 -> THINGSPEAKAPIKEY: (REMOVED)
19:06:35.695 -> Host: api.thingspeak.com
19:06:35.695 -> Content-Type: application/x-www-form-urlencoded
19:06:35.695 -> Content-Length: 30
19:06:35.695 ->
19:06:35.695 -> field1=4.117&field2=4&field3=0
19:06:35.832 ->
19:06:35.832 -> +USOWR: 1,186
19:06:35.832 ->
19:06:35.832 -> OK
19:06:35.832 ->
19:06:36.244 -> AT+USORD=1,1024
19:06:36.346 ->
19:06:36.346 ->
19:06:36.346 -> +USORD: 1,690,"HTTP/1.1 200 OK
19:06:36.346 -> Date: Fri, 19 Jun 2020 23:06:36 GMT
19:06:36.346 -> Content-Type: text/plain; charset=utf-8
19:06:36.346 -> Content-Length: 5
19:06:36.346 -> Connection: keep-alive
19:06:36.346 -> Status: 200 OK
19:06:36.346 -> X-Frame-Options: SAMEORIGIN
19:06:36.346 -> Access-Control-Allow-Origin: *
19:06:36.346 -> Access-Control-Allow-Methods: GET, POST, PUT, OPTIONS, DELETE, PATCH
19:06:36.346 -> Access-Control-Allow-Headers: origin, content-type, X-Requested-With
19:06:36.346 -> Access-Control-Max-Age: 1800
19:06:36.346 -> ETag: W/"5f4b75634381196faf857ccc46a291a9"
19:06:36.346 -> Cache-Control: max-age=0, private, must-revalidate
19:06:36.346 -> Set-Cookie: request_method=POST; path=/
19:06:36.346 -> X-Request-Id: 41840dda-ae4d-4dbf-bf7a-47129194163f
19:06:36.346 -> X-Runtime: 0.029371
19:06:36.346 -> X-Powered-By: Phusion Passenger 4.0.57
19:06:36.346 -> Server: nginx/1.9.3 + Phusion Passenger 4.0.57
19:06:36.346 ->
19:06:36.346 -> 19719"
19:06:36.346 ->
19:06:36.346 -> OK
19:06:36.346 ->
19:06:36.346 -> AT+USOCL=1,1
19:06:36.448 ->
19:06:36.448 -> OK
19:06:36.448 ->
19:09:28.932 -> ATE0
19:09:29.617 ->
19:09:29.617 -> OK
19:09:29.617 ->
19:09:29.617 -> AT+CEREG?
19:09:29.754 ->
19:09:29.754 -> +CEREG: 0,1
19:09:29.754 ->
19:09:29.754 -> OK
19:09:29.754 ->
19:09:29.754 -> Registered
19:09:29.754 -> AT+CGATT?
19:09:29.857 ->
19:09:29.857 -> +CGATT: 1
19:09:29.857 ->
19:09:29.857 -> OK
19:09:29.857 ->
19:09:29.857 -> Attached
19:09:29.857 -> AT+CGACT?
19:09:29.960 ->
19:09:29.960 -> +CGACT: 1,1
19:09:29.960 ->
19:09:29.960 -> OK
19:09:29.960 ->
19:09:29.960 -> Context Activated
19:09:29.960 -> AT+USOCR=6
19:09:30.064 ->
19:09:30.064 -> +USOCR: 1
19:09:30.064 ->
19:09:30.064 -> OK
19:09:30.064 ->
19:09:30.064 -> AT+USOSEC=1,1
19:09:30.199 ->
19:09:30.199 -> OK
19:09:30.199 ->
19:09:30.199 -> AT+USOCO=1,"platform.clickatell.com",443
19:09:32.974 ->
19:09:32.974 -> OK
19:09:32.974 ->
19:09:32.974 -> AT+USOWR=1,214
19:09:33.077 ->
19:09:33.077 -> @
19:09:33.077 -> POST /messages HTTP/1.1
19:09:33.077 -> Authorization: (REMOVED)
19:09:33.077 -> Host: platform.clickatell.com
19:09:33.077 -> Content-Type: application/x-www-form-urlencoded
19:09:33.077 -> Content-Length: 46
19:09:33.077 ->
19:09:33.077 -> content=Smoke!&to=(REMOVED)&from=(REMOVED)
19:09:33.181 ->
19:09:33.181 -> +USOWR: 1,214
19:09:33.181 ->
19:09:33.181 -> OK
19:09:33.181 ->
19:09:33.559 -> AT+USORD=1,1024
19:09:33.663 ->
19:09:33.663 ->
19:09:33.663 -> +USORD: 1,367,"HTTP/1.1 200 OK
19:09:33.663 -> Server: nginx
19:09:33.663 -> Date: Fri, 19 Jun 2020 23:09:33 GMT
19:09:33.663 -> Content-Type: application/json
19:09:33.663 -> Content-Length: 155
19:09:33.696 -> Connection: keep-alive
19:09:33.696 -> Strict-Transport-Security: max-age=31536000; includeSubDomains
19:09:33.696 ->
19:09:33.696 -> {"messages":[{"apiMessageId":"10be3bf1c2a14e3da7e0c8367e8f3e33","accepted":true,"to":"(REMOVED)","errorCode":null,"error":null,"errorDescription":null}]}"
19:09:33.696 ->
19:09:33.696 -> OK
19:09:33.696 ->
19:09:33.696 -> AT+USOCL=1,1
19:09:33.797 ->
19:09:33.797 -> OK
As you can see, It only took a couple seconds to open a socket to thingspeak. Also about the same amount of time to open a SSL socket to clickatell in order to send an SMS.