I had a little play with your project but could not reproduce the thread death issues. However it was not working as I expect either, so I went back and tested the jetty mechanism again.... I found a few funnies and changed a few things.
Main change is that the PushBuilder now takes absolute URIs rather than context relative ones - just saved me lots of fiddling with the URIs.
I've now got a demo in the master repo at jetty-http2/http2-server/src/test/java/org/eclipse/jetty/http2/server/Http2Server.java
Plus a image tile demo docroot. I have included a filter that notices if the get request is a push and if so serves the pushed/tileXY.jpg instead of the tiles/tileXY.jpg. Each tile has it's name and location in the image, so you can visually see if it came from a push or not.
I tried adding a header to the pushed requests to indicate that it is a push, but that does not appear in the browser debug for the pushed resources, even when I see that the image has indeed been pushed.
This has been working OK with FF35.0.1, but I have issues with my chrome even before I get to the push... so I need to investigate that.
Pushing 304's does sometimes appear to result in confusion in the browser. If you push a 304 when the browser does not have the image, it just displays nothing and does not fetch it again.
Anyway, if you wanted to play in that push sandpit for a while, that would be easier for me to try reproduce and debug any issues.