What about something like this:
* At the cost of 10% of his troops per hour, the defender can delay the battle time by 1 hour. (This 10% is refactored every hour so if you have 1000 it will cost 100 the first hour, leaving you with 900, then 90 the next hour, leaving you with 810, then 81 the next hour, etc. Minimum cost is 2% of the attacker's troops, so if he has a 1000 troop army, you must pay at least 20 troops per hour to change the time.)
This is simulating the defender sacrificing troops for a delaying action to buy a little time. This would give defense a bit more freedom to always have the battle on their terms (at some cost).
We could also use gold or goods instead of troops. Like maybe dumping 20 goods lets you delay by 1 hour. People would be carrying goods on them purely so they could dump them to adjust their time!