Same here... I didn't bother disabling the particle connection, and used the strandtest code, and the oak crashed/froze somewhere between 10 mintues and 30 minutes later.... So I think some yields() are needed to kick the wifi / particle tasks.
I think it could be an interaction of two things... (bear in mind that I haven't looked at this bit of code yet so what I say now could be complete rubbish!)
From fiddling with the pure ESP8266 Arduino core (and seeing forum/github stuff), there used to be (still is?) a problem where you didn't call yield() often enough, and the wifi link would drop or the ESP8266 would crash 'n burn. yield() does essentially what it says it does... it yields (to the background periodic processes that need to run). Then with the Oak I think you add the Particle integration on top, meaning not only could the wifi get b0rked, but also the Particle link. Hence yield() has to be run periodically. Now, every time the main loop() function runs it should trigger, as well as any background particle stuff. IIRC, the particle stuff is also triggered whenever a long enough delay() is used (hence why there is no longer a special Particle.delay() call). So if you have code (like standtest) that doesn't let the loop() run frequently enough, either or both the wifi and Particle code get cranky, and the Oak locks up (is that a technical enough description?).
Moral of the story... be generous with your yields(). I don't know if Particle.process() is needed - it might be called in the yield() function also meaning it's not needed - although I know it is needed if you are in full manual Particle mode.