It's impossible to determine which error occurred if it just returns false for multiple things.
I think they should all throw exceptions (programmer error) (including the serialization error which is a validation error in whatever feeds into the notification's extra data) except:
* DB read-only (maybe better to lose the notification than blow up the request with an exception? This generally shouldn't happen since whatever *causes* the notification should also not happen due to read-only)
* BeforeEchoEventInsert (I think suppressing the notification silently is intended here)
Those two should return a Status.
This is a breaking change and any checks for this in [Wikimedia-deployed code](https://github.com/search?q=org%3Awikimedia+EchoEvent%3A%3Acreate&type=Code) also need to be fixed, and it needs to be documented in release notes as a breaking change.