448156 Fixed INACTIVE race in IteratingCallback

Simplified the ICB statemachine with the addition of a lock state to handle the case of iterate() called while a
previous process() iteration is just existing.

Also added the CALLED state to replace INACTIVE when a callback is called before PENDING state entered.

renamed INACTIVE to IDLE