My experience seems to echo some parts of yours: Codex is stingy with tokens when compared to Claude Code.
But Codex is superior when comes to diagnosing bugs ( especially when they involve WPF UI threads), writing tests ( yes, even simulating the form cycles and asynchronous operations) and fixing them.