@tom You should probably instead do the following
set socket to blocking
send
set socket to non-blocking
receive
save config
Otherwise you actually try to receive, save, and deep sleep before the packet has actually been (completely) sent.
An alternative is to add a manual sleep, but remember that the time between send and receive is variable (the network can change the RxDelay).