That's a good idea. The specification will some how need to solve dependency issues, either by itself or with help from SourceMod.
Update:
I'm considering an event system without support for priorities. Priorities adds complexity and coupling between modules.
Instead I'll focus on pre and post events like OnClientInfect and OnClientInfected. If a module depends on something to happen before something else, we should define an event for that.
There are very few cases where a module is modifying event priority in the future ZR 4.0 branch. All cases should be possible with pre and post events.