2) Какие подводные камни могут быть при простом добавлении контента
вот в таком виде (да и вообще, правилен ли подход)? :
ngx_chain_t head, tail, *cur;
...
head.next = in;
...
cur = in;
while (cur->next) cur = cur->next;
cur->next = &tail;
cur->buf->last_buf = 0;
tail->buf->last_buf = 1;
return ngx_http_next_body_filter(r, &head);