Everything is so dependent on the type of work you do. For me sonnet works pretty well, it’s hard for me to say. Even when I used opus nonstop last month it’s not like I was doing the exact same tasks on sonnet. However it did drop down to sonnet a lot and I didn’t have a problem
Opus and Sonnet are pretty similar for mainstream stuff heavily represented in the corpus.
But when you get into dark corners, Opus remains useful or at the minimum not harmful, Sonnet (especially Claude Code) are really useful doing something commonly done in $MAINSTREAM_STACK, but will wreck your tree in some io_uring sorcery.