Melt butter with oil in a medium saucepan over medium-low heat. Stir in garlic, oregano, pepper flakes, basil, and a pinch of salt. Stir until fragrant but not brown, about 3 minutes. Add tomatoes, onion halves, and sugar. Bring to a simmer and then reduce heat to lowest setting. Cook, stirring occasionally, until reduced by half, about 1 hour. Discard onion halves and season with salt. Sauce can be made several days in advance and kept refrigerated until ready to use.