I suggest that when you do leave him at daycare, church, etc. that you always leave immediately. By sometimes staying longer he will test to see if this time you'll stay. Do not allow a 20 minute transition time. Carry him, if needed, to the door, tell him good bye and leave all the time remaining calm and appearing to be unconcerned. When he gets an emotional reaction from you he will be more upset. He takes his cue from you on how to feel about this situation. And never stay the entire time. Again, he will test to see if his meltdown will get you to stay.
I've read about a way to desensitize a child in this situation. I don't have personal experience with it. I suggest that it may work with some children and not with others.
Here is the plan. Have a babysitter come over and leave. Give him a hug and quickly leave once the babysitter is settled. Then come back in in a couple of minutes. Leave again and come back in in 5 or so minutes. Do this several times increasing the length of time you're gone each time. You may have to do this 2 or more times over a period of time.
I'm not sure of the details or if I've accurate described it.