Instead of channeling a given amount of funds per block to dev teams, do the following:
Define a set of milestones that are expected to be achieved, assign a price for each milestone and extract that amount of value as a tax on a single block once, and only if, the milestone is reached and delivered by the dev team.
This way the community will not bear any risk, and will be customers instead of funders. Customers are usually less gruntier than funders.
If dev teams need the funds now, then sell the rights to part or all of these future payments to investors that are willing to bear the risk, and who will also push developers to deliver.
Maybe this way the community will feel more comfortable paying the tax.
Note: for milestones that require a network update/fork, the deliverable is the new network. Users can even decide to stay in the legacy (less performant) network if they don’t want to pay the tax. For clients and wallets that is not the case.