Hi @porschberg,
The limit you are referring to is an EC2 service limit, not something Terraform controls. Therefore Terraform cannot increase the limit.
My suggestion would be to consider building a custom AMI that has your full script already installed in its filesystem, and then use user_data only to trigger that script to run, possibly passing in some arguments to the script that are determined from Terraform.
If you take that approach you could also decide to pre-run some of the actions that your script would do today. For example, if the content of the docker-compose files is known at build time then you could elect to include those in your custom AMI so that they are already present on disk when the instance starts up.
One way to build custom machine images is using HashiCorp Packer, which works by starting up a temporary EC2 instance with an existing AMI, running a set of commands you provide, and then shutting down the EC2 instance and capturing its disk contents in a new AMI.