Async calls will not keep reference in the worker

If you want to ensure they reach, use sync calls.

Sync calls get maintained in a dictionary called kv for every worker
While merging with another branch, one mistake that was meant for
sync calls were overlooked which did not break functionality, but
led to a memory leak.

async calls will fire-and-forget, and no ack hack will be attempted.

Also added an api to inspect the worker fsm