Handles bug that could occur from multiple speculation calls:

What happens if evt1 calls speculate on A, then evt2 writes to A, then
evt1 calls speculate on A again? Seems as though could get an issue
where allowed to speculate on incorrect value.

Instead, speculation only succeeds if active_event requesting
speculation is outermost derived object.