The protocol field in the ipv4 header seems like a reasonable choice. A value would be associated for ipv6 and if that value is chosen then additional header data follows the ipv4 header.
(What's up with people constantly suggesting that v6 should do things that it already does?)
The result is basically the same situation we are in today, except much more hacky. You'd still have to do a bunch of upgrades.