@customdesigned You could probably accomplish (1) easily, but I'm not sure if I'd use it myself. You'd need to modify git-ssb and ssb-keys to use a different secret when you're writing git commits. I'm not interested in this, because I think it's cool that my commits are under my own identity.
2) has been long on my list of things to figure out how to implement, but no one has made a stab at it yet. I've at least once accidentally pushed to master on someone else's repo when I was meaning to push to a branch. I'm not sure if a list of names of allowed people is quite the pattern we want to use here though? Part of the issue is we haven't quite decided how to solve this problem, and also give us the most distributed freedom.