Agreed with WN-Ali... no reputable provider is going to allow you to have lists of 20,000+ on a shared hosting account... the only exception I can think of is if you carefully hand-pick a provider and work with them to develop a custom plan wherein they are fully aware of what you're going to be running, and you pay a hefty monthly fee because you will be using considerable CPU/RAM resources.

20k is very large for a shared provider.
The problem with
DadaMail is that it relies on a perl process which remains alive throughout the send. If the perl process dies off for whatever reason -- if it dies on its own, or is killed off by a server operation/tech -- then your mail-out will die right in the middle. The last time I used DadaMail, it did not keep track of where it was in a mail-out, so if it died, you would have no way to know where to resume.
DadaMail is great for small-time senders, but keeping that perl process alive can be a challenge on some hosts.
This issue is fully dealt with in Active Campaign's
1-2-All. 1-2-All uses crons to send, and it keeps track of its mailing, so that if the send accidentally dies-off mid-stream, the script will automatically resume the send all on its own. 1-2-All also allows for data collection and message personalizatiion.
But, we keep coming back to that list size issue... 20k is just not reasonable on a shared host. It is going to stretch the capabilities of a VPS, because a VPS is only a slice of a CPU, not a whole CPU (and you need maxiumum CPU to do a big mail-out).
The most affordable solution is going to be a mailing list host. I highly recommend
Aweber. I am a subscriber to a number of Aweber lists, and have been
very happy with the service. And
check out their feature list -- Aweber is
extremely feature-rich. When I've priced out resource allocation & features vs. cost, I can't run similarly-sized lists, with Aweber's features/capabilities, for the same or less cost. That's why I recommend people go with Aweber... because I know I can't do it better myself.

Not for lists that big!
Smaller lists (500-3,000ish) are easily and nicely accomodated on a shared hosting account and either DadaMail or 1-2-All.
Be sure to batch your sends according to your host's requirements. But anything over a few thousand, I refer to Aweber.com. They just do a very nice job for a reasonable price.
Just my 2¢ worth, hope it helps!! Good luck with your project.

Bailey