Hmm.. So there is a single DownloadDataWriter thread that should wake every 5 seconds to check if any buffer is full. Its a single thread, so I don't see why a random value should change anything.
This check should not cause writing if buffers are not full (L158/L181). So something else must be going wrong there too.
Additional at least every minute a write is forced (L137/138), maybe earlier if buffers run full (L120).
I did some changes to DownloadDataWriter to have more correct logging. Hope this might help:
https://sourceforge.net/p/phex/code/4572/
The line number above are before my changes.