Firstly, there isn't a £15 100minutes unlimited text deal for 18m. This is very clear on the website.
Secondly, what did you want o2 to do? Give you a call every 10 minutes with an update?
Once a handset leaves o2 its out of their hands and they entrust it to DHL, there are bad apples in every basket, on the whole though DHL are normally very good, I've always received a good service from them. With the recent weather though I know there is a backlog of deliveries so it could be that they simply didn't get time to finish their rounds or it was put on the wrong van. As far as I'm aware there isn't much of a way to escalate a complaint with DHL from o2's side, if it was a week and your order hadn't turned up then they would simply send you another phone, but for a failed delivery, not much and it wouldn't change anything if its sat at someones house.
I don't see why they should reimburse you, you decided to have it delivered and you decided to make the trip, you could have requested it to be left with a trusted neighbour or waited till Monday, or you could have just taken it out instore.
If you refuse delivery then this will send the handset back to o2 and your account will be cancelled, but it is in your best interests to phone up and check it has been returned, if only for your peace of mind. However you can't go into store for 30 days because you can only have 1 credit check every 30 days with o2, trying again will make it decline and will look bad on your credit file.