Your Hypervisor should be a Hypervisor and nothing else.
If there is an actual performance based need to keep SQL non-virtualized, then your better bet would be to get a second server to run SQL on. However, most likely if this is the entire infrastructure you can get away with virtualizing SQL, and separating the storage in Hyper-V to dedicate some to your databases so that there's nothing else on that storage competing for IO. Depending on performance requirements you may not even need to do this.
As long as you're running Hyper-V 2016, and you don't join the Hyper-V machine to the domain, there are no issues with virtualizing your DC. If you join the Hyper-V box to the domain, you may have some issues getting into the server if there is an issue with your DC VM restarting. Having a domain-joined Hyper-V host, hosting your only DC is supported with 2016, but I wouldn't do it. Regardless of what MS says these days, it's safer to keep at least one physical DC running in case there are issues with the virtual one starting that prevent you from logging into the Hyper-V box for administrative purposes.
You shouldn't put WSUS on your DC though. Domain controllers should be treated with the same specificity as hypervisors. Only run what's required on them, nothing else. In a smaller shop, running DNS/DHCP/DC on one box is very common, just isolate the DHCP service account. In a massive network, running DHCP on a separate box is a better configuration.
All of this is possible, and cheaper. With AVMA you'll simplify your activation/licensing as long as you've licensed all cores in the host. I'm assuming you're using Server 2016 Datacenter, in which case adding an additional server to do WSUS is covered by your license. Datacenter gives you unlimited virtualized environments when the whole host is licensed, so you're better to split WSUS off from your DC.
For more details on configuring DHCP see here: https://blogs.technet.microsoft.com/stdqry/2012/04/03/dhcp-server-in-dcs-and-dns-registrations/
For more information on best practices regarding other apps on Hyper-V see here:
For more information about AVMA see here: