I have a contract whose lifecycle is transient and added Begin() / End() events to call from the contract for later use with forensics, etc. I've noticed that intermittently (30% of the time or so) the End() event does not get logged on the blockchain - i.e. using web3 event query API I don't get the last event sometimes. Anyone noticed something like this? Is there a workaround?