Notion of Co- and Contravariance in Dirac-Notation $\newcommand{\bra}[1]{\left<#1\right|}\newcommand{\ket}[1]{\left|#1\right>}\newcommand{\bk}[2]{\left<#1\middle|#2\right>}\newcommand{\bke}[3]{\left<#1\middle|#2\middle|#3\right>}$
A (p, q) - Tensor can be expressed in a arbitrary basis as
$$T=\sum_{(i_1,\dotsb ,i_n)}T^{i_1\dotsb i_{p}}_{\quad\quad i_{p+1}\dotsb i_n}(e_{i_1}\otimes\dotsb \otimes e_{i_p}\otimes e^{i_{p+1}}\otimes\dotsb \otimes e^{i_n})$$
In Dirac-Notation that can be equivalently expressed as
$$T=\sum_{(i_1,\dotsb ,i_n)}T^{i_1\dotsb i_{p}}_{\quad\quad i_{p+1}\dotsb i_n}(\ket{e_{i_1}}\otimes\dotsb \otimes \ket{e_{i_p}}\otimes \bra{e_{i_{p+1}}}\otimes\dotsb \otimes \bra{e_{i_n}})$$
However I have often seen a (1, 1) - Tensor be expressed as
$$T=T^i_{\;j}\ket{e_i}\bra{e^j}$$
where Einstein summation is being used. My source of confusion is that - according to Riesz's Lemma - $\bra{e_j}$ already constitutes a dual - vector. What exactly is $\bra{e^j}$ then? Both behave differently when a vector is passed as an argument
$$\bk{e_i}{e_j}=g_{ij}$$
$$\bk{e^i}{e_j}=\delta^i_j$$
so $\bra{e_i}$ and $\bra{e^i}$ can not be the same object and in calculations they also yield different results. Furthermore, in QM, where Dirac - Notation is most commonly being used, the distinction between co- and contravariant indices is not used at all (as far as I am aware; presumabely because eiganbases of hermitians are orthogonal and hence the metric is just $\delta_{ij}$; please correct me if I'm mistaken). I would be very glad if you could resolve my confusion here. My gut feeling is that some of the definitions I provided might not be entirely correct.
EDIT: I have looked at the related posts to my question and there seems to be a contradiction between the answer provided in
Basis and dual basis in the Dirac notations and Ambiguity with Dirac Notation and I am still unsure whether Dirac - Notation is limited to the special case of $g_{ij} = \delta_{ij}$, since I've seen it being used in non orthonormal bases and still yield the correct result. An example would be
$$g_{ij}g^{ji}=\bk{b_i}{b_j}\bk{b^j}{b^i}=\bra{b_i}\Bbb{I}\ket{b^i}=\delta^i_i=\mathrm{dim}(\mathcal{V})$$
which is the expected result. That is not the only case where a more general application of dirac-notation works.
 A: In Dirac notation, $\langle \psi |$ is a covariant vector, while $| \psi \rangle$ is a contravariant vector. Of course, this nomenclature is hardly ever used, because it is more convenient to call them bras and kets. There is no point in using indices to make this distinction. In particular because the mapping between the vector space and its dual is assumed to be Hermitian conjugation. Notice it is not a Kronecker delta: the vector space is complex, and hence there is a conjugation as well.
To write indices (with positional differences to indicate the dual) and Dirac notation simultaneously is an unnecessary mess. Each of the notations already takes care of denoting dual elements in its own way and each of the notations is better suited for different things. As discussed by Terence Tao on this MathOverflow post, each choice of notation is made to make some aspects of the theory easier. Indices are very useful when making calculations involving tensor fields on a manifold. However, Dirac notation is designed to make calculations on a complex Hilbert space as intuitive as possible.

Q: Can we use Dirac and Einstein notation interchangeably?A: Yes, but it is not exactly advised. Dirac notation might get ambiguous or difficult to interpret when you're dealing with operators that are not "well-behaved" under Hermitian conjugation (i.e., are not (anti-)Hermitian, unitary, etc), but there is nothing that forbids you from using it in principle. However, do notice that writing high-rank tensors in Dirac notation can get way more difficult than in index notation. One could also use Einstein notation in QM (in fact, this is sometimes done in relativistic settings, such as QFT in curved spacetime) , but it might also get more difficult to do some calculations.
Both notations can be used in other contexts. However, they are designed with the goal of implementing some convenient theorems in useful ways, so that you can write e.g. tensor or inner products in a quite natural way, or exploiting the fact that you won't be dealing too much with high-rank tensors. Some of this convenient theorems or properties might not be valid in a general setting and the notation might become misleading.
As an example, notice that if an operator $\hat{A}$ is not Hermitian, you need to start paying attention that $\langle \phi | \hat{A} | \psi \rangle$ means always that $\hat{A}$ is acting on the right, but being used to working with Hermitian operators might lead you to think incorrectly that $\hat{A}$ is acting either way. Similarly, if $\lbrace|n\rangle\rbrace$ is a non-orthonormal basis, $\mathbb{1} \neq \sum_n |n\rangle\langle n|$, and forgetting this detail might lead you to mistakes. Writing tensors of high ranks in Dirac notation can also get quite confusing, and I won't even attempt at writing something like the Riemann tensor in this formalism.
I think Einstein notation has less drawbacks (but I'm a relativist). However, notice that Dirac notation is remarkably well suited for computations involving only vectors and scalars. Indices implement many results useful for working with large tensors that are not necessary in day-to-day QM, so Dirac notation can exploit better the properties of vectors. This can be seen in the "Lego-like" features of bras and kets, that can simply be connected together in an intuitive way to make inner and outer products naturally.
