Would you not use the 7p off peak rate to charge the battery on the 150 or more days when generation was insufficient to bring them back to a safe level of charge .
No, it does not make sense to do that on a regular basis. Assuming you need something like 4 kWh to recharge a nominal 3kWh battery we would achieve that on 271 days/year on average here in S. Devon and 9 days/month even in January (the worst month), so the need to do a maintenance charge from off-peak mains would be pretty infrequent.
Nothing wasteful about it, the immersion heater will only consume sufficient power to replace the hot water actually used in the previous 24 hrs. A full tank is about 9kWh so it would take >13kWh to have enough to replenish both, we get that on 141 days in the year on average. It is probably sensible to give battery charging the priority as this will maximise the utilisation of the expensive charger/inverter, my controller would do this automatically as the immersion is the load of last resort. As noted above, the battery itself is at best revenue-neutral as its depreciation per cycle is about the same as the value of the peak rate electricity saved (based on Wattstor's published figures, however they assume the Chinese-made batteries are good for 1500 cycles whereas Sonnenschein who have been making them for decades only claim half as much).It will need some careful monitoring and management . No non essential loads when conditions are unfavorable and no wasteful water heating that will not be used simply because the immersion heating controller finds there is surplus generation that would go back to the grid if not used .