What the trace is telling you is that for some reason the body() task is completing in zero time and the post_body() task is dropping the objection leading to the end of the run_phase(). The UVM simulation then terminates.
Therefore you need to look at what is going on in the write_seq and/or the driver. Is there something happening that causes the body() method in write_seq to return in 0 time? Is it something like the driver doing a get(), and the write_seq only sending a single write sequence_item? If this is the case you would get this type of behaviour.
Something you could try is raising an objection in the run_phase of the test, or another component, to extend the run_phase, this will allow you to see whether your driver is actually doing anything. (Your initial block is outside the UVM and will have no effect).
task run_phase(uvm_phase phase);
phase.raise_objection(this);
#1000us;
phase.drop_objection(this);
endtask: run_phase