Answering 1) & 2) (others already pointed out No.1 in the comments, added additional reference):
The left table should be the bigger one, as others already suggested in the comments. Based on v3.2 codebase, canSplitRightSide() does not support LeftOuter: adaptive/OptimizeSkewedJoin.scala#L89
2) Why didn't AQE detect and optimize the skewed join?