An alternative mechanism for revenge
Say player X logs off: in the current game setup, 5 mins later his/her base is labeled as being available to be attacked.
For the first one minute (or 2, or 5, or something), only revenge attacks are permitted. If player Y has player X in his/her revenge list, a notification is sent to player Y: "Player X is available to revenge, attack NOW!!!"
If this minute (or 2 or 5 ...) elapse without a revenge attack, only then player X's base is offered to the general public for an attack.
So, when it comes to attack, revenges have priority.
What do you think?