Reset state on `start()` end

I've moved state and flags restoration into try-finally block.

Useful when KeyboardInterrupt, SystemExit errors is raised or exit() function is called inside handlers.