Here's some gamedev advice: Don't be an over-achiever, because you overachieving means somebody, somewhere, gets screwed
You might not believe me at first. I didn't want to believe it either. You/Your boss might have some story for me about how on YOUR team, everything is cool
Basically there's a cost to 'being that person who makes projects happen in less time'. Time savings could occur! Your boss will pocket that + maybe call you a "rockstar", & at first it will look like you saved time
But you didn't
You pushed time elsewhere
Your 'individual' act of working too late will create pending work items for your teammates
Perhaps like me you had the luxury of single-mindedly pursuing work above all else, but your teammates might have other shit in their lives you're now helping the boss eat
The whole nature of the arrangement your bosses made is like a feudal hierarchy, so any time savings you create at your level is expected to be 'eaten' by the upper levels in one way or another
If they ship 2 weeks sooner, you'll get 2 extra weeks' work on the new project
You can always say it's different in the case of [team x] because [exception y], like maybe people got profit sharing or have some itty-bitty stake in a cooperative
But if we ask "Did every person along the whole chain get fairly compensated?" the answer's no
Someone got robbed
You can try on a million different rhetorical garments that somehow try explaining why you have special permission to overwork 'yourself' on behalf of a boss, but I am quite certain none will fit
In this kind of arrangement what's ethical is instead to disappoint