Kashyap,
Primary drawback of using "blk_mq_tagset_busy_iter" is API is only for blk-mq and it is not available for all the kernel with blk-mq support. We have seen multiple failures from customer and those kernels does not support blk_mq_tagset_busy_iter. In fact, blk-mq and non-mq stack is alive in many Linux distribution and customer is using those.
I'm afraid the burden falls upon Broadcom to manage enablement patches for older kernels. So the non-MQ/non-tagset-busy-iter cases are not particularly relevant for the discussion here.
Let's focus on getting some usable plumbing that drivers can use to abort oustanding tags.