Feature/graceful quit

Wait for termination until postQueue is empty up to 30 seconds.
When we receive terminating signal more than once, it is an abnormal condition and I think we can terminate immediately without sending via channels (i.e. calling `exit()` here) and simplify code around here