Namecheap checks all those boxes for me, so I've been using them for a long time now.
Buy a domain name - Register cheap domain names from $0.99 - Namecheap
Cloudflare has also entered the domain registrar business and I've experimented with using them too. Currently not enough supported TLDs (specifically country codes) to use it exclusively.