I send rewards out as soon as monthly payments clear (usually on the 2nd), and if people sign up mid-month, I send their rewards immediately (same as they would have received on the 2nd).
I have started using the “Benefits” tab to keep track of this. When someone signs up, it immediately records the benefits for their tier as to-do items (both monthly and one-time benefits). Also if they upgrade during the month it shows the difference (benefits for higher tier but not lower tier) as due.
So if you were to use that system, I would think you’d set all 3 rewards up as “monthly”. You’d get a big list of “due” items at the start of the month, and just let them sit/accumulate until you send things out at the beginning/end/5th. If someone joined at the $20 level mid-month, you’d immediately see the start/5th rewards as due for that person, and you could send them right out, or wait a bit and send out a batch for all the mid-month signups or whatever. For instance, mid-month after a new pledge it might show:
BENEFITS DUE
Card for $20 patrons: 1 due (new patron)
Image for $5 patrons: 1 due (new patron)
Drawing for $10 patrons: 501 due (all existing plus new patron, just haven’t sent these yet)
(I’m assuming you DO want to send rewards to mid-month signups. One of the reasons I switched to pay-up-front was so I could immediately send rewards when people sign up, instead of making them wait as much as a month and a day to receive them. If you don’t want to send rewards to mid-month signups, maybe pay up front is not right.)
All that said, I only started using “Benefits” a little into this month, and I haven’t verified that it works correctly for the start-of-month routine. I’ll know that in a couple days. 
My only problem with this system is that I send rewards by e-mail, and some patrons need to use a different e-mail address than they use for Patreon, so I have to maintain a separate list of patrons and their “reward” e-mail addresses. As of yet there doesn’t seem to be a way to roll that into the Benefits feature. @buster, let me know if there’s some way for me to put data on a patron’s account (e.g. the notes field in relationship manager) and have that appear with their name in the Benefits Due table. I would be happy to see that INSTEAD of the physical mailing address, since I don’t send anything postal mail and don’t collect a physical address from patrons, so it’s just a big blank space for me.