If shutdown_pool errors then Mod:terminate will not be called.  Think we should use a try/catch/after, like so:

```erlang
try
  shutdown_pool
catch _:_ ->
  log about failing to shutdown pool
after
  Mod:terminate
end
```