Sometimes a multi-block migration is required and we need to suspend all the operations for some pallets depends on the migration. We can easily reject all user transactions by updating the base call filter, however we will also need a way to suspend executions delivered via XCM.
We are building a pallet for that but encountered an issue that we have no way do disable execution within on on_idle hook.
AcalaNetwork/Acala#1737 (comment)
It will be good if there is public API to suspend & resume the queue, and extrinsic to send suspend/resume signal to other chains.