Start a timer on Chrome (tested 138.0.7204.183 and 145.0.7632.75 ) and the icon stays in its inactive/grey state.
A likely starting point is background.js line 20: browserApi.action.setIcon() is not awaited, so if Chrome rejects the call, the failure is silently swallowed and the icon stays grey. But whether Chrome is actually rejecting it - and why - still needs to be confirmed.