I've been looking into the new API problems, and timeouts seem to be the biggest issue for me. Essentially, the https connection gets set up (or an existing connection is reused), the GET for the API endpoint is issued, the GET is ack-ed at the TCP level, and then.... crickets.
After some experimentation, I now have every fetch in a for loop with an increasing CURL timeout value for each retry, starting at one second and maxing out at nine. It often takes multiple calls to get the data, but I have not yet seen a case where I don't eventually get the data.
For example, running the forecast script right now:
1) Point forecast fetch: Failed three times, worked on 4th. On the successful fetch, the total time spent was only 0.122 seconds.
2) Alert "point" fetch: Failed six times, worked on 7th. 0.124 seconds for the successful fetch.
EDIT: I was able to verify the actual traffic sent to the NWS server by running the script from my laptop. Nice that Mac OS has good-old Unix underneath.