Resolve potential data race (#9118)
Resolve potential data race (#9118)

The Go race detector tripped (at least once) on concurrent access the the
alpn Proxy `cancel` function pointer - where it is being set in
`Serve()` and where it is being called in `Close()`.

While this is extremely unlikely to happen in production, in an abundance
of caution I have added explict serialisation to these access points in
order to not trip the race detector again.
gravitational/teleport,gravitational/teleport,gravitational/teleport,gravitational/teleport,gravitational/teleport,gravitational/teleport