Drain the beans and add to a large pot. Cover the beans with 4 inches of water and generously salt (a little less than pasta water). Add half the garlic and half the onion. Bring to a simmer and cook until beans are soft and creamy but not falling apart, about 40-50 minutes.
While beans are simmering prep the remaining ingredients. Slice the onion, finely chop the garlic, and halve the tomatoes.
Once beans are cooked, strain the broth from the beans. Measure out 1 cup of broth (you may keep remaining broth for another use). Discard cooked onion and garlic from beans and set beans aside.
Give the pot a quick clean and add 1 tbsp of olive oil over medium high heat. Add the sliced onion and chopped garlic and cook until onion begins to brown. Add the tomatoes and cook until they begin to release their liquid and collapse. Add the 1 cup of the bean broth and bring to a simmer, simmering for 5 minutes. Add the beans and cook for a remaining 2 minutes. Season with salt and pepper. Pour beans into a bowl and top with dill and feta.