Is PhotonWdgs:: begin() you setting up the watchdog? 10 seconds timeout is very short for a watchdog - sometimes the WiFi.connect() can take 25 seconds! Watchdog should be set for 60 seconds IMO.
I use this declaration before Setup()
ApplicationWatchdog wd(watchdogPeriod, watchdogHandler);
The watchdog handler function can do a bit more than call System.reset() - i.e. you could save the reason for the watchdog being called to eeprom?
Then at the start of the loop() I call wd.checkin();
BTW - you do not need
WiFi.connect(); does this if the module is off.
Also, before calling
Particle.connect(); shouldn’t you check that the device is WiFi connected with
if (WiFi.ready) ? Because you have only provided snippets of your code - are you using SYSTEM_MODE(MANUAL) and SYSTEM_THREAD(ENABLED)? Without threading enabled the Particle.connect() will block the application.