I thought NameCheap had restrictions on who could use the API to update the DNS. Do you have ability to do that? Maybe that is why caddy keeps failing the DNS Challenge.
You could probably use the HTTP or even TLS-ALPN challenges but you need to fix your DNS settings first.
You have two IP addresses for your base domain. HTTP connects to the 98.x IP just timeout so that should probably be removed. HTTP requests using the 162.x IP do connect but then redirect to your www subdomain. And, you don't have any A record for your www name so you should set one.
jmdots.com. 0 IN A 162.255.119.190
jmdots.com. 0 IN A 98.29.208.206
The redirect is being done by the Namecheap URL Forward service. You need to disable that and set the A record to the public IP for your server. Contact namecheap for help with this.
curl -i http://jmdots.com
HTTP/1.1 302 Found
Location: http://www.jmdots.com/
X-Served-By: Namecheap URL Forward
Server: namecheap-nginx
I don't know why acme.sh would tell you the email address is wrong. I have never seen that. You may need to post on the github for acme.sh to resolve that.
But, since you are using caddy I would work to get that working. It will be much easier in the long run. Once you fix your DNS it should work well.