Always check for new events whenever a state change occurs due to an event.

Events are interesting because their state extends before the simulation starts, we need to know their state before time 0 to determine if they transition at time 0. This is determined by the event initial values. So, the initial value is used when system time is negative.

Improved event logging and output.