Firstly, the grammar of both sentences is confusing, because first you use woke (a past tense), and then you use will (a future tense). If you are making a statement about a specific future time, use the simple present: By the time I wake up...
As for the difference between
will have finished
will have been finished
will have finished is in the active voice: it means that the tower is the one performing the action of "finishing". If you say "the tower will have finished", it makes me ask "Finished what?"
will have been finished is in the passive voice: it means that someone else is performing the action of "finishing" on the tower. We can tell that it's in the passive because of been, which is the past participle of to be, and we use (to have) been (past-participle) to form the passive voice in a perfect tense. This is probably the one you want to use, because it makes more sense to think of someone or something else completing the building of the tower.
If the difference is unclear, consider this example:
Active: By the time I wake up, my friend John will have eaten (John has eaten something)
Passive: By the time I wake up, my friend John will have been eaten (Something ate John!)
Reference: Passive voice