Not quite. The recipient is always getting messages earlier (in the recipient's frame) than the date of the sender's reference frame. Always. So if the ship gets the July 4 message (earth date) on July 3 (ship date), and then the ship responds (on July 3, ship date) it will arrive on earth earlier than the ship's date! The recipient always gets the message earlier (recipient's date) than the transmission according to the sender's date.
There is no causality loop within a single inertial frame!
True. But when you're receiving messages from a different frame ...
I already said that if you bring a different inertial frame into the equation then you have causality problems. That requires a third frame of reference interacting with the first two!