A lot of folks have written about triage; essentially put the money where there is a real chance of restoring naturally reproducing wild fish. That concept gains little traction for a variety of reasons:

King County, for example, would probably not want to spend "their" salmon recovery money in Pacific County.

Folks want to work locally.

It is easier to get money for mitigation from a dam operator than a taxpayer.

In order to protect the watersheds for wild fish it will be necessary to significantly constrain population and economic growth in those watersheds. Which means that the rest of the state will have to pay the folks who live there.

Essentially, we would have to adopt a strong socialist government to force such actions.