OTP will never be 100% supported, it's an application framework for a dynamically typed language and as such much of it doesn't make sense in a statically typed language.
Elixir has other ways to express constraints, e.g. pattern matching and guards. I can't judge if it's equivalent in principle to a type system like Gleam's but in practice I find it rather easy to work with and solve issues I use types for in e.g. Java.
It's not quite equivalent but I believe it's the basis of the type system being developed for erlang so definitely contains a lot of the same information.
Playing with the process 'primitives' is a good introduction, i.e. spawn, send, receive, self.
Those are enough to get started with processes, including setting up two-way connections by sending local PID with the self function so the spawn:ed process knows where to send responses.
GenServer/gen_server is more or less a convenience wrapper around those, that makes more complicated processes easier to design but harder to get started with.