As to the question of what sort of governance structures work best, a common model has emerged in #OSS that most closely resembles labor unions:
A tiered structure, but with accountability flowing *downward* towards the community. Developers/committers/members are appointed based on a clearly-defined process based on experience and domain knowledge, who in turn elect a core team tasked with strategy, but who make non-binding *recommendations*, not decrees.