Put beans and 6 cups water into a medium pot and set aside to let soak overnight.
The following day, add 10 cups cold water to beans and the soaking water in pot. Bring to a boil over high heat. Reduce heat to medium-low and simmer, uncovered, stirring occasionally, until beans are tender, 3 1⁄2-4 hours. Add 1⁄4-1⁄2 cup hot water to pot if beans begin to dry out.
Drain beans, reserving cooking liquid, and set beans and cooking liquid aside separately.
Heat oil in a heavy medium pot over medium-high heat. Add onions and cook, stirring occasionally, until very dark brown but not burned, 10-12 minutes. Remove onions with a slotted spoon and discard. Add beans and 1 tbsp. salt to pot and cook, stirring and mashing beans with the back of the spoon to a coarse paste, 2-3 minutes. Stir in reserved cooking liquid, reduce heat to medium-low, and simmer, stirring occasionally, until thickened slightly, 5-8 minutes.
Meanwhile, put avocado leaves and 1⁄2 cup water into a blender or food processor and puree to a thick fibrous paste, adding up to 2 tbsp. water, if needed. Strain puree into a small bowl, firmly pressing on solids with back of a spoon, and discard solids. Stir strained avocado leaf juice into beans and continue simmering, stirring often, until thickened, 8-10 minutes. Season to taste with salt. Sprinkle cheese over beans.