Best Answer - Chosen by the Asker
This one is not very easy to answer, since I don't know the origins of the expressions, but let's try.
1. We do say "(Eu) vou ter uma soneca." and similar.
2. "Tirar" is an active verb.
3. "Tomar", in this sense, however, acts like a not purely active, nor purely passive verb - it's called by some simply as neutral verb. We could say it's a middle voice verb.
So, we use "tirar" for expressions such as "tirar uma soneca" just like we say "dormir". You make the action of "dormir", and don't suffer it from someone or something.
On the other hand, we say "tomar" for expressions such as "tomar vergonha na cara", " tomar banho" etc. You make the action, sometimes syntactically and semantically, other times just syntactically, and suffer it from something or someone else.
e.g.
"(Eu) vou tirar uma soneca." (I'm going to take a nap.)
I am the grammatical subject and an agent too.
I will move to the 'soneca' and will make actions in order to execute it.
AND
The couch/bed/whatever won't execute something on me.
Therefore, the couch/bed/whatever isn't an agent too.
"(Eu) vou tomar um banho." (I'm going to take a shower/bathe.)
I am the grammatical subject and an agent too.
I will move to the 'banho' and will make actions in order to execute it.
BUT
The shower/bath will bathe me.
Therefore, the shower/bath is an agent too.
This isn't an universal pattern, by the way, but the majority and more.
In English, you make things easier using 'take' for both senses.
I hope I could be clear enough and help you. =]