It's not either/or in strict terms, it absolutely is either/or in practical terms. When the conscientious engineer chooses not to take the 300k job, the next one in line does. If enough choose not to, it just became a 400k job.
Can you change society in such a way that nobody would take such jobs? In strict terms, sure, in practical terms it probably entails enormous costs, both economical and societal. And then you still have other countries.
There's an entire legal code filled with things on which we can't rely on the morals of the people. We can't stop theft, rape and murder, what makes you think that stopping engineers is any more feasible?
The best thing builders can do is use their knowledge and authority to pressure the other side.
Ofc they share the blame, but it is not solving the problem.
You can say for example: loan sharks are bad for society; so government gives anyone 0 percent credit. You just removed one problem, created another.
Just and sustaining system with individual morality is destined to fail. Only option is social regulation. Which is at government level.