There is a solution (#3). Best known is to have the consensus layer prune data periodically, but check to see if the UTXO getting pruned are still spendable and charge fees for rebroadcasting them.
https://www.youtube.com/watch?v=agppUdX9YvI&feature=youtu.be...
An actual market-powered mechanism for data-pruning. As the price of new transactions rise, the amount paid by old (rebroadcast) transactions rise more. Network hits equilibrium where data in == data out.