In reply to tfitz:
Thanks for quick response.
finish_item() does not go through, start_item() does go through. I also see transaction completely driven on DUT interface after which driver calls item_done() but somehow finish_item() is blocked.
finish_item() call only one task - that is sequencer.wait_for_item_done(). So this is the one which is blocked.
I am looking into UVM source if I can find anything. Meanwhile, if you have anything off the top of your head, please share.