Do not throw sanity check when in_shutdown is true. This is also applied to ExecMode and TestMode as they follow the same pattern.
In asynchronous mode, don't wait for result of executed command, just fire-and-forget, and return estimated cost/result