I tried this a couple of days ago as I set up a new server, and when I enabled HTTP/2 on non TLS server blocks, my clients would just try to download a binary blob instead of showing the page I expected.
That's a client issue, not an Nginx issue. Try accessing it through an stunnel tunnel, for example.
That said, AFAIK, the protocol negotiation works at the TLS level, so non-TLS servers need to listen on different ports for 1.1 and 2 if you want both.
I fixed it after reading the following: http://serverfault.com/a/792857.
I admit I didn't look into it any further. Apologies if I spread wrong information.