I am building a Windows AMI from a base Windows AMI with my custom software on it. If I distribute this image to customers, am I infringing some ToCs? How does it work given that Windows is proprietary?
You can share your AMI's, and you are not infringing on any ToC's:
Amazon EC2 enables you to share your AMIs with other AWS accounts. You can allow all AWS accounts to launch the AMI (make the AMI public), or only allow a few specific accounts to launch the AMI (see Sharing an AMI with specific AWS accounts). You are not billed when your AMI is launched by other AWS accounts; only the accounts launching the AMI are billed.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-intro.html
When you share it with your customers, and they launch the AMI, they are billed by AWS and part of that bill is to pay the licensing cost as needed.