I'm having similar issues with a test module, we don't use the screen or other screen code.
We also use a battery well in excess of our needs - it appears to happen after a certain interrupt is triggered.
The interrupt has SMS code in it as well as Particle.publishes.
Not sure yet what is causing the system hangs. but we get similar unresponsive behaviours where interrupts are ignored and the device drops off the net.
We use multi-threading too... humm
EDIT: Correction - other interrupts seem to activate functions, but don't bring it back onto the cloud. The interrupt that triggered the issue doesn't re-trigger. :\