In a heavy-bottom saucepan or Dutch oven, heat the olive oil over medium-low heat. Add the onions and half of the minced garlic. Cook for approximately 4 to 5 minutes, stirring frequently, until translucent. Add the black eyed peas, 2 strips of bacon, bay leaves, and thyme.
Add the stock and black pepper, then turn the heat to high. Bring the liquid to a boil, then reduce to a simmer. Cook until the beans are tender but not mushy, 1 to 1 1/2 hours.
Meanwhile, slice the remaining bacon. In a large skillet or saucepan, cook over low heat to render out the fat, then turn the heat to medium and cook until crisp. Transfer to a paper towel-lined plate. Discard all but 1 tablespoon of the bacon fat, turn the heat to low, and add the remaining garlic. Cook until fragrant, approximately 1 minute. Add the crushed red pepper, if using.
Add the spinach to the pan and cover, allowing the steam to wilt the spinach, approximately 2 to 3 minutes (you will likely need to do this in batches). Season to taste with salt and pepper. If the spinach was cooked in batches, combine before seasoning.
Using tongs, remove the bacon and thyme sprigs from the black eyed peas, then drain any excess liquid. Serve the peas over the spinach, topped with the bacon.
Cornbread is a common accompaniment to the classic version, and it would pair well here as a side. Soak the beans overnight to cut down on the cook time (a pressure cooker such as the Instant Pot would also speed up the process).