Yeah a delay isn't going to help, unfortunately, as certain messages that get received have a useable time limit on them. :(
Definitely no VPN being used either at home or work.
Apologies in advance for all the dumb/noob questions; I'm very new to this stuff.
Ok, now I have the Fail Catch element, how do I use it?
Where do I stick it in the flow and how do I configure it?
This is the flow I have thus far:

This is the log since I last restarted it yesterday:
06-03 10:46:21.860 I 7@1: Flow beginning
06-03 10:46:21.863 I 7@2: SMS received
06-03 10:47:39.129 I 7@3: HTTP request
06-03 10:47:39.652 I 7@2: SMS received
06-03 16:24:50.712 I 7@3: HTTP request
06-03 16:24:51.183 I 7@2: SMS received
06-03 17:17:56.516 I 7@3: HTTP request
06-03 17:17:56.971 I 7@2: SMS received
06-04 06:58:21.989 I 7@3: HTTP request
06-04 06:58:22.007 F 7@3: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associated with hostname)
06-04 06:58:22.023 I 7@3: Stopped by failure