I’ve been here since '11. The most reliable internet is going to be a fixed line DSL / fiber, but this is likely not an option for you if you’re traveling; no one really wants to do one month installations. This leaves mobile:
Vodafone 4G is great, works most places, but will drop you back to 3G speeds outside major cities / metro areas. It’s uber-reliable in a city like Calcutta or Delhi, but terrible if you’re on the road. A lot of random towns and villages do get some 3G coverage these days, though. It’s enough for email / text work or code, but not enough to stream Netflix easily. Depends on what you need.
In cities, that 4G connection will stream / download movies easily.
BSNL requires far too much paperwork and pain; I’d avoid them if at all possible. Related note: you really, really need to go to one of the large, branded Vodafone stores if you’re a foreigner, and not one of the random little shops. The little ones don’t really know how to use foreign IDs for verification, so your connection will be deactivated (could take a week, could take a month) randomly. The paperwork thing is a big enough pain that now that I have Indian IDs, I just get SIM cards registered to my ID for friends traveling here.
The dongles get better reception than your phone-as-a-hotspot, but then you’re paying for two SIMs and two plans. Not a big deal, since plans are very cheap here compared with the US. Most dongles also come with a plug adapter, so you can use them as a hotspot by just plugging them into the wall instead of directly in your laptop. The Vodafone 4G hotspot device (not the dongle) also has an internal battery, so you can run much longer if you’re working remotely without power for a while.
The only other company I’d look at if Vodafone doesn’t work out well for you is Airtel. The other players in the market have been extremely unreliable for me at best.