In reply to uvmsd:
There is limitation regarding the usage of the uvm_event. The problem with the uvm_event in the sequence is you do not know when the get is issued. Looks like you do in the sequence the get to the config_db before the set was done.
With respect to the uvm_components this does not happen because the run_phases are executed in parallel.
If you need the trigger in the sequence the event_pool is recommended.
With respect to your DUT model. It works as you have described. The read data are available in the same clock cycle where you pass the addr.
If you want to see the read data later you have to insert an additional clock edge.