(re)Launching . : With supervisor/s6 overlay, data volumes and aws ECS, we don't have any issue, and indeed, when something goes wrong (it doesn't happen frequently, but sometimes for some reason a config isn't correctly re-updated or anything), the easiest way for us to get a clean container is to kill it (which supervisor will do automatically with the process is broken). ECS will restart the task definition and everything is fine again
A side aspect of launching (that you didn't mention, either it was implicit or forgotten) is service discovery. Managing container become really easier when you don't have to bother about the ports, and don't use static ports. It took us some work to get it (and for some containers we haven't yet finished), but it really makes your life easier because you can start multiple instances of the same container on the same host, and the service discovery will link them. (We used Consul, and are happy with it so far, but other alternatives exist)
Deployment: although easy, I find it a little bit cumbersome. Wercker is great (and so far it was free!). But sometimes hangs, lags, ... Using ECS (and Terraform) for the deployment itself make it easy to maintain and update, really. But it required some amount of work to setup.