Thank you for the proposal Wang Chung!
It is clear that, spam aside, blocks are getting full and we need increase them soon. What I don't like about your proposal is it forces all node operators to implicitly accept larger blocks in 2020, even maybe against their will. 32 MB blocks might result in a loss of decentralization, and it might be too difficult to coordinate for small blocks before it's too late.
So I think Core can't decide on hard forks like this. It must be left up to the users. I think only choice is for Core to add a run-time option to allow node operators to increase block size limit, so that this very controversial decision is not coming from Core. It must come from the community.