I'm curious how blocks happen in India. Does some random government agency just wake up one day and decide to block off part of the internet? Is there any sort of citizen involvement?
Pretty much. In addition there is no real enforcement to see that only the sites requested are blocked. And ISPs (Jio especially) have started taking creative license with block orders. For a lot of ISPs this blocking is implemented at DNS resolution level, which is easy to bypass (just change your DNS resolver), but the most popular ISP (Jio) does not do it this way, and is pretty much impossible to get around.
How does Jio do it? Would encrypted SNI help in thwarting that?
They monitor all DNS requests(no matter who provides the DNS server). So the solution is DNS over HTTPS.
The SNI method is a bit tricky. ESNI does prevent the blocking, but currently it’s rarely implemented by websites. One other solution is TCP fragmentation. Split the packet containing SNI into two. This prevents them from catching the whole URL mentioned in the SNI. Thus, they are unable to block it.
One such tool: https://github.com/SadeghHayeri/GreenTunnel