NodeMCU Exception 28 - intermitent problem
Exception 28 is, according to the exception list document:


  Access to invalid address


The most common cause is trying to read or write from/to a NULL pointer. 

It could be because you have debugging turned on, and that debugging is trying to print something that didn't get returned properly from another function call (the call failed) - most likely looking up a host name (hostByName()) due to your intermittent internet connection.

This may sound counter intuitive, but try turning off debugging to see if that helps reduce the number of crashes.