There's a clever product that you can screw inline with the showerhead that lets cold water through at full blast but when the water gets hot, something pops (presumably using metal-expansion properties the way old thermostats did) and the flow is reduced to a trickle, so you only use just enough water to keep it hot.
Then when you get in, you pull a cord and it releases the full pressure of nice hot water.
We just keep a 5 gallon bucket next to the shower and fill it up with the pre-warm water. Then we use it to water the garden (and sometimes to power flush a stuck toilet).
Then when you get in, you pull a cord and it releases the full pressure of nice hot water.