zb: use a detached task for signal unsubscription
block_on() in drop() (or other places) can easily deadlock the current task, as it usually depends on the executor to be kicked.
Avoid using a block_on() to unsubscribe from a signal, and instead spawn a detached task.