Welcome to the obsession! I think a 20g long is a little short for an angelfish as it grows. You'll run out of height quickly as it grows.
I've used dirt w/cap, crushed black lava, sand, gravel, montmorillonite clay, etc.
Pick the color you want and run with it. If you're going sand, don't get the really fine sand as it will compact. Go with larger grain size. Look at sandpaper, 20-40 grit will give you a good idea of grain size.
Soilmaster Red infield conditioner - fired montmorillonite clay - screened with 1/8" screen for the bigger pieces only. (Great for amazonian tanks due to color, high CEC, no breakdown or dust)
Saf-T-Sorb - dark gray with molted colors - montmorillonite clay - also screened, slowly breaks down, so expect dirt when replanting, good CEC, good color, but some awesome tanks use it. (SeattleAquarist tanks)
Black Diamond Blasting Sand (BDBS or black coal slag) - 20-40 grit, black, inexpensive, works good, doesn't compact, but it's sharp and folks have mixed reviews with substrate fish varieties.
Eco-Complete/Flora-Max - SUPER EASY. Works great. Easy for planting and moving plants around.
Gravels - pea gravels, or CaribSea GemStone Creek, Rio Grande, etc. Grow plants fine, easy planting.
Black sand - black fine grain - compacts heavily, good for fish, but limited success growing plants that were root feeders. (java ferns, anubias, etc are not an issue, just my experience I'm sure someone else has a different opinion)