Docs for this state:
Important: suspension applies to all aspects of the dispatch object life cycle, including the finalizer function and cancellation handler. Suspending an object causes it to be retained and resuming an object causes it to be released. Therefore it is important to balance calls to dispatch_suspend() and dispatch_resume() such that the dispatch object is fully resumed when the last reference is released. The result of releasing all references to a dispatch object while in an inactive or suspended state is undefined.
https://developer.apple.com/documentation/dispatch/1452801-dispatch_suspend
Unfortunately these docs aren't shown in Xcode on the protocol.