As it turns out, I was wrong yesterday; Hapi streams the templates just fine. When testing things in curl, the views streamed from Dust never printed until the entire payload was ready, but when streaming strings that looked like HTML, everything was normal. Then I decided to throw in an async script just to see what would happen in browsers.
This is when I got a little confused—the browsers worked fine! As it turns out, Dust likes to minify the output, so there were no line breaks, and curl likes to wait until a line break to show output.