WiFi.listen(false) doesn't work? Please nooooo

You can use multithreading - add

SYSTEM_THREAD(ENABLED)

to the top of your sketch. That will then run your loop() code even when the system is listening.

EDIT: oh, I see you have that. Please be sure to update to 0.4.7 firmware.

Alternatively, there is a system event, that calls a function regularly during listen mode, this is described here - Implications of customized system firmware - Photon