Do you mean this loop() function in my minimal sketch ?
void loop()
{
}
The theory that the WiFi has to run despite the fact that I am not using it in the example sketch is plausible. It seems that putting almost anything in the blocking while loop, even a delay(1), prevents the problem occurring, although I guess that using yield() is the proper way to do it