Currently it is possible for containers to leak and remain in an exited state if a docker container is not fully started before being killed. Depending on the selected Docker storage driver, the lower bound on starting a container can be as much as three seconds (using docker run). If an implicit image pull occurs, this could be much longer.
When a container is not fully started, the PID is not available yet. As a result, ContainerLaunch#cleanUpContainer will not signal the container as it relies on the PID. The PID is not required for docker client operations, so allowing the signaling to occur anyway appears to be appropriate.