default notification#identifier to nil so we can assign one
push_out is simple again
retry logic runs even if exceptions are monitored in with_retry block
read_if_ready throws an exception if there is an error (helps us detect a closed connection)
load certificate context only once rather than every time