Great post, we started with option 1 and from experience it really didnt work and moved to option 2.
One thing that we are trying to keep is that if this protobuf schema isnt shared across services and there are clear producer and consumer that use them we keep that generated in the producer and consumer.
Also from experience, I suggest you to keep the protobuf schema flat as much as possible and make sure ypu stick to the schema evolution best practices