Add support for non-blocking init and status()
Ensure that state transitions are handled fine