Clarify container exit logic

Condensed three variables into one variable with three states.  Clarified logic handling these states.
Hmm, having package-level symbols called `Exit`, `Symbol`, and `OOM` read a little ambiguous to me. Can we pseudonamespace them, something like `ExitNormal`, `ExitSignal`, `ExitOOM`?