Hi Jacob,
Option 2 : it depends on the how you adopt the process methodology , basic key data for event posting is event code , event location , date and time and reason. reporting event without the location is meaning less and it requires additional development in pre-processing and badi's.
Option 4 : suits well for expected event posting with single stage execution and it requires additional custom validation based on the event reporting process model aligned with business SLA's.
i won't recommend this step for multistage execution.
you can use IS_EVENT_REPORTED activity in rule set for unexpected event and quit the event message processing after validating the IS_EVENT_REPORTED.
~Sukumar