I think approach 1 should work with a small tweak:
The problem is caused by the mismatching bookmark-names. Since you create a bookmark named "event", the workflow engine is waiting for a stimulus with that name. So, if you change
var stimulus = "myevent";
to
var stimulus = "event";
this should be fixed.