I tried to make something like exactly this about a year ago. I wanted to have my docker compose logs in separate tmux panes. I had a system where it would run the commands in the background, but then create several pipe files that each tmux pane would then read from. It didn't work great though. At least in go, I struggled to get a system to open tmux panes in the order I wanted, in the windows I wanted.
I'm definitely gonna try this out and see if I can get it to play nicely with docker compose