Melt butter and oil in a large heavy pot over medium-low heat. Add onions and sugar substitute. Cook 45–60 minutes, stirring every 5 minutes, until deep golden brown.
Add garlic, cook 2 minutes. Increase heat to medium-high.
Add wine and scrape up browned bits. Simmer until wine reduces by half.
Add broth, bay leaves, and thyme. Bring to boil, reduce to simmer 20 minutes. Season well.
If using keto bread croutons: toast slices in oven until very dry and crisp.
Preheat broiler. Ladle soup into oven-proof crocks. Float crouton on top if using.
Pile generously with mixed Gruyère and Comté. Broil 3–5 minutes until bubbling and golden. Serve immediately.