The plan is decent.
With regard to mail, I would just go ahead and setup a separate mail server from the start. You will be more familiar with disk space required, but 2 vCPU /4 vCPU & 4GB RAM is plenty for email handling based on the # of sites you are planning.
Datatabase
I would not separate the database from the sites. We have tested this with up to 40Gb/s NIC on a back-end connection and there is still a measurable pause taking place. Just place the App/DB role together on each hosting server for best performance.
DNS
We setup separate and geographically diverse DNS servers in our cluster, but you can start with that role running on your control and production server and move it later as you grow. 2GB RAM / 2vCPU is more than enough, storage we do 10GB for those servers (JIC).
Backup
I do not see backup server. You need a dedicated backup server. Again 2 vCPU and 2-4GB RAM with enough disk space on second BTFS partition to keep the backup retention you require. I would go to a separate provider (Linode or any others recommended in the forums) for the backup server to keep that data "offsite" in case of emergency.
Also, make SURE you have a solid image of the control server - that may cost more at DO, but if something happens it will save your bacon until such time as the Enhance team is able to provide the ability to transfer control server to other VM/hardware.