Does UVM have any concept of a "semi-active" agent? Somewhere between passive and active, used in place of a passive agent, with the addition of nondestructive overriding of certain signals.
For example a semi-active agent on an AXI bus could randomly drive ARVALID/ARREADY signals to 0 occasionally. So long as the master sees the overridden ARREADY==0 and the slave sees the overridden ARVALID==0 the design should continue to work correctly with only a timing perturbation. This would give better control and coverage of lower levels of the design, without requiring a complete block-level testbench. (Though clearly it is no substitute for a proper block-level testbench.)
Assuming the concept is sound, there's the matter of how to wire up such an agent so that it has these capabilities.