I am definitely interested in a solution for this. There are a few similar proposals with different methods and I think there are pros and cons to each of them. I tend to think https://github.com/nostr-protocol/nips/pull/1030 is the best approach but it requires widespread adoption to be useful which is a significant barrier. It also relies solely on relays to enforce and doesn’t provide a (signed) way for the client or non-author user to validate if a relay is cooperating.
Your proposal accomplishes the goal today for anyone who wants to support it which is useful, but since it requires signature validation changes it will be harder for relays to implement. It can’t be done as a write plugin or on a proxy in front of the relay because the DB needs to support the new field. It also forces the user to re-create the event to add another to relay which leads to duplicates.