First things first, here's a link to Leviton's 7299 combination switch & GFCI instruction sheet. For a tamper proof it will be a T7299. The only reason I give Leviton is because I know the part number. Hubbell, GE or Cooper are just as good and make the same.
GFCI protection for both outlets.
Follow the instructions that come with the GFCI. There are leads for the switch and lugs for the GFCI and also the feedthru-protection of another receptacle.
No GFCI outlet behind the dishwasher (for easy resetting without dishwasher removal).
This is accomplished by feeding the dishwasher receptacle using the GFCI feedthru-protection lugs.
The switch only toggling the garbage disposal outlet and not the dishwasher outlet.
This is accomplished by using the leads on the combo switch & GFCI to feed the garbage disposal.
Am I going to need to run some more wire through the walls?
If there are no wires between the combo switch & GFCI then you will have to pull some romex between the two.
Should I investigate adding a GFCI breaker for that circuit?
The breaker will cost a lot more than the combo switch & GFCI. Also, if the GFCI trips then you have to go to the breaker to reset it. At least with the GFCI receptacle feeding your dishwasher receptacle, you will be closer.
What other solutions would achieve the same effect as listed above?
I think this is the way to go, so you don't have to pull your dishwasher out to reset the GFCI. The nice thing about this site is some of the people either can think out of the box or have faced this problem before.
If you want to have power always on to a box that is downstream of a switch, you'll need to use 3-conductor cable between the switch and split the hot side of the outlet.
At the outlet, break off the tab on the hot side only between the top and bottom outlet. Wire the red conductor to one of the hot screws, the black conductor to the other one, and then the white to the other side of the outlet.
At the switch/outlet, you'll need to wire the incoming black wire to one of the hot screws, and the outgoing black wire (to the 3 condutor cable) to the other hot screw. The outgoing red wire (the one controlled by the switch) goes on the neutral side of the switch, and the incoming white wire gets wire-nutted together to the neutral side of the outlet along with the outgoing white wire (from the 3 conductor cable)
Be sure to ground all outlets and switches as well.
With this setup the bottom outlet on the second receptacle, and the outlet on the combo device will always be hot. The top outlet on the second receptacle, will be controlled by the switch.
Best Answer
This should be fine*
There is not a restriction that a disposal must be on a dedicated circuit unless the manufacturer states that it must be. Unless you have a high-end beast of a commercial unit, it probably doesn't.
There are rules in the NEC on circuit sharing, and a "fixed" device like a disposal or dishwasher can't use any more than 50% of the circuit capacity if that circuit is to be shared with general purpose lighting/outlets.
What that means in your case is that if the dishwasher shares the circuit, it probably uses more than 50% because of the heater used for drying and water heating. I think that means you really shouldn't share it with the disposal either and it should be dedicated (so I normally see a dedicated circuit for them).
If the disposal is on it's own or already shared with other kitchen outlets, you are fine to add an outlet.
GFCI required
As you stated, a GFCI outlet is required, and that means you will need a two gang box. There are switch/outlet combos you could stuff into a single box,
but not with GFCI(Link in comments, single gang switch/GFCI does exit), but you probably want more than a singe receptacle. Upgrade to a two gang (or three!) box and use a GFCI outlet.