I played around with a variety of possible ideas on what the problem could be, but ended up narrowing it down to the fact that Apache/PHP returns Transfer-encoding: chunking. It took me a long time, but I managed to get rid of that by replacing it with Content-length.
The trick was getting the sucker to work. I had my php code totally in the wrong order for a long time; I was deceived by Firefox, which (via WebShark) was telling me there was data and it had length. Web-sniffer.net and other header reader sites kept returning 404 or zero content length header messages... as did the IWeb status.
Turns out, I was using the output buffer incorrectly.
My final code needed to be://setup here
//setup of data hereAnd that did the trick. I'd try to explain more, but it took me a long while to get to this point, and I'm still not sure if there is something within IWeb that I could have manipulated to make my life easier. I don't want to speculate at this time.
ob_start();
//header stuff here
echo $strOfStuff
header("Content-length: " . ob_get_length());