Place the dried navy beans in a large bowl and cover them with water by about 3 inches, then leave them to soak overnight or up to 24 hours. The beans should look plumper and smoother once they have absorbed water.
Heat the olive oil in a large pot or Dutch oven over medium heat, then cook the diced onion for 6 to 8 minutes, stirring now and then. Stop when the onion is soft and translucent, with no deep browning.
Stir in the garlic, thyme, rosemary, crushed red pepper, and a pinch of salt and pepper, and cook for 1 to 2 minutes. The herbs should smell fragrant and the garlic should stay pale rather than darkening.
Add the bay leaf, drained beans, ham bone, ham scraps, and 10 cups of water, then bring the pot to a boil. Once bubbling, lower the heat, cover the pot, and maintain a quiet simmer for at least 1 to 2 hours, adding more water if needed.
Lift out the ham bone when the beans are very soft, let it cool slightly, then remove any remaining meat with a fork or knife and discard the bone. A tender bean should crush easily when pressed against the side of the pot.
Return the removed ham to the soup and season with additional salt and pepper to taste before serving. The finished broth should taste smoky and savory, with beans beginning to split slightly around their edges.