Re point 1:

The API is only loosely similar to event handlers so I don't want to confuse the issue... We might also expose real event handlers (for some other reason I can't think of) in the future.

Point 2:

JS never exposes constants for strings (in node or web content) I don't think it adds much value... IMO- the constant thing is more about "magic numbers" (who knows why 1 means startSession) but given we use strings always its fairly clear.