L2 is clearly not CFL because we cannot compute square values using just the stack logic. Think of it as a cyclic dependency; we need to know the number of ‘a’ present in the input to be able to select appropriate numbers of ‘a’ we must push in our stack. But to know the number of ‘a’ we must push into stack. So it is certainly not possible.
For its complement, there will be one case as follows: (i am not 100% sure of this logic)
“starting with a and ending with b but |b| != $|a|^{2}$” .This case will again make it non-CFL but CSL.