RP, good question.
I've gone Hwy 30 to Longview (not my fave but decent shoulder) then 411 to Vader (marginal but no other choice?) then
506 past Ryderwood up to Curtis near 6 (very nice, quiet, highly recommended). That puts you within striking distance (5 miles) of Rainbow Falls SP (ok campground, showers) . From here, heading east toward Chehalis on Hwy 6, it *looks like* (haven't ridden it but shows as paved on the Washington State bike map) you can follow Bunker Creek Rd. north and work your way to Rochester on Hwy 12. From here it's a short run (12 miles or so) into Olympia on Littlerock Rd. - there are some back ways as well (haven't ridden any of this between Rochester & Oly so caveat emptor). The Olympia/Thurston Co. bike map may provide some guidance.
Also, Michael Wolfe had posted a year or 2 ago (featured on BikePortland?) an alternative route between Portland and Longview that he recommended. You may be able to find it in the archives.
also, the WashDOT bike map is fairly useful:
good luck, have fun.