1. How would one go about creating an invisible, omnipresent object that does not need to be bought and cannot be sold, which would sit around for the purpose of storing a set of global, hood-wide settings? Alternatively, is there a way to do this without creating an object?
Invisible omnipresent objects are common, as "controllers", and can be created by setting the "Global Object" bit in the OBJD, but they do not retain hood-wide settings, and each instance of an object is seperate and independent of those on other lots. If you wish to retain a global setting, you will need to utilize global neighborhood tokens, which don't necessarily need an invisible object. An example of global settings is seen in the Autonomy Controller, which retains the list of global proscriptions across all lots.
2. To what extent is it possible to have an object on a community lot maintain a persistent state between visits from sims who do not own the lot, without resetting every time someone new shows up? Would the state have to be saved to an above-mentioned global object, or is there a neater way to do it?
There isn't. This is neither feasible nor advisable.
3. Business info: where is it stored? How does one get to it? I notice that BRY calls Lua scripts to find out whether a lot has a business - does all business info have to be accessed through Lua scripts?
Yes.
Are there major differences for home businesses? Is it possible to get a list of all the businesses in the current hood without going through every single lot and testing to see if it is a business? Are there ways to attach additional info fields to a business and be reasonably certain that it won't be overwritten with garbage later?
No.