I never learned Elixir, but my first guess is IO.inspect is sending a message that is printed by a different process. Then the prints after exit are just the IO process working through its mailbox.
Alternatively, the await might killing the waiting process, not the process being waited on.