I have been working on the consensus algorithm and while it is fast it has the following problems:
1) There is no way to compensate people for running full nodes.
Right, but there is no need to compensate them. Bitcoin doesn't compensate people for running full nodes, only for mining, which consensus doesn't have.
2) The cost of running full nodes grows with N^2 the number of nodes participating in the consensus process
I'm not sure how you figure that. The cost of the consensus process itself scales as N log N and is divided over the nodes. The work each node has to do scales with the log of the number of nodes participating. Perhaps you're thinking that every node must directly consider what every other node is doing. That's not so. You only need a sample, and that scales with the diameter, which is the log of the number of nodes.
3) There is no way to reward nodes that participate in consensus to cover the cost of bandwidth growing
There is no evidence that there's any need to do this. Bitcoin doesn't reward transaction relaying either.
4) If you rely on charity, the regulatory risks may result in nodes not proliferating
It's not charity. People run nodes because they want high-quality access to the network. If the network doesn't provide services worth its bandwidth, it should die. This is the same reason people run Bitcoin nodes.
If you don't believe me or are still worried, then the community can just decide that, say, 1,000 validators is enough to provide reliability and decentralization. Adding more would provide no benefits, so just don't. There's no need for 100% agreement on this, people can just refuse to relay validations they don't think add sufficient value.
Also, you can't have it both ways. Your argument is basically, "nobody will run a validator because the bandwidth caused by all the reliable validators that we can't afford to drop will be too high" that's like "nobody wants to go to that restaurant because it's too crowded".