Here's the deal on overtime:
1. It is "professional" to eat any extra time it takes to do a job when it's your fault. On that note, it is unprofessional to promise completion with an unreasonable schedule. The result may be your people up and quitting and you being left with explaining to your boss why the work isn't finished.
2. It is "professional" to help people at no extra cost, even if it means you have to stay in the office an extra hour or two. I should note that if you're asked for help, make it clear to the asker what your time constraints are, etc. Having the reputation of helping people is an excellent way to convey your own dedication to the profession, too. I will add, however, that it is unprofessional for someone to refuse to learn and to expect that the "nice guy" who helps everyone will do your work for you. It's also REALLY unprofessional to blame your failure to complete work on someone who couldn't help you.
3. All that being said, it is unprofessional for a manager to ask/tell his people to work longer hours without compensating them. People have lives outside of work. They have families. If the customer wants a schedule accelerated and it means that the workers have to cancel holiday plans or whatever, you'd better make it worth their while rather than rely on their "professionalism." After all, they're putting more money in the manager's pocket through the extra hours.
4. Consider this: do you work for a company or are you an independent contractor? Are you part of a team or are you a mercenary? Managers, owners and engineers - everyone - should ask themselves this. If a job needs to be done, and there's not enough time during regular hours to finsih the job, the engineers are not slaves who work for free! Hire more engineers to get the job done!