Node.js: поток потока в ответ задерживается через HTTPS

Я пытаюсь использовать Connect для обслуживания статического контента, но с большими файлами ( > 40 КБ) первый кусок 40 960 байтов отправляется (иногда 32 940 байт), тогда передача переходит на 2 минуты, после чего передача завершается. Я узнал, что это происходит, когда я подключаю поток к ответу (это то, как Connect посылает ответ).

Вот код, который воспроизводит это, на Node 0.6.2, в Windows и Linux, с файлом 48,980 байт:

var fs = require( "fs" ), https = require("https");

var privateKey = fs.readFileSync( 'privatekey.pem' ).toString();
var certificate = fs.readFileSync( 'certificate.pem' ).toString();
var options = {key: privateKey, cert: certificate};
var server = https.createServer( options,
function( req, res ) {
    var path = __dirname + "/public" + req.url;
    fs.stat(path, function(err, stat){
        if( err ) {
            res.writeHead(404, {'Content-Type': 'text/html'});
            res.end(""+err);
        } else {
            res.writeHead(200, {
                'Content-Type': 'text/html',
                'Content-Length': stat.size});
            var stream = fs.createReadStream(path);
            stream.pipe(res);
        }
    } );
} ).listen(8364);

С fs.readFile я не могу воспроизвести:

var fs = require( "fs" ), https = require("https");

var privateKey = fs.readFileSync( 'privatekey.pem' ).toString();
var certificate = fs.readFileSync( 'certificate.pem' ).toString();
var options = {key: privateKey, cert: certificate};
var server = https.createServer( options,
function( req, res ) {
    fs.readFile(__dirname + "/public" + req.url, function(err, data){
        if( err ) {
            res.writeHead(404, {'Content-Type': 'text/html'});
            res.end(""+err);
        } else {
            res.writeHead(200, {
                'Content-Type': 'text/html',
                'Content-Length': data.length});
            res.end(data);
        } } );
} ).listen(8364);

Я сделал что-то не так?