Learning really only happens where failures occurs, because failure is a motivator and provides memory cues for recall in the future. This is essentially what we call experience, and good experience in the workplace will come from having failed and learned from the failures. If your juniors were capable of getting everything correct first time, either they wouldn't be learning anything, or they wouldn't be juniors.
If you have too many juniors messing things up, perhaps your company has staffed incorrectly, with too many junior grade developers where time constraints require better experienced people to minimize your risks, yet even then you can have problems and delays, as senior developers make mistakes to learn from as well.
Your juniors will need to learn and gain experience in order to be able to cope in an environment where the deadlines are tight. As a team leader, it is your job to set an example and inspire your juniors to work efficiently, however the reality is that you have to set aside concerns of personal pride and concerns for your tight schedules if you want your juniors to actually learn something, and therefore you need to allow them to fail. Therefore, it is your job to make a call. Sometimes you need to give the junior the space to fail, and then take them patiently through a review process to show them where they could improve their ideas. At other times, you need to put your foot down, but do it in a way that allows you to show that doing so is out of a genuine need which doesn't reflect poorly on your junior's abilities per-se. If however you do head down this path, you must expect a certain amount of hand-holding and therefore it is up to you to decide if the extra burden on your time is worth it, or if you'd be better of just leaving your junior to fail and learn.
As for the issue of tight deadlines, this is where you need to schedule and allocate your work according to the relative strengths and weaknesses within your team. Ultimately the buck stops with you. When you are in charge of others you're not there to be everyone's friend, you're there to get a difficult job done under difficult circumstances. How you keep everyone on your side comes down to talking people through your concerns and issues, making a reasonable case for why you need your team members to do something in a particular way.
From my own personal experiences, you need to reserve a set amount of time with your junior to discuss the strengths and weaknesses of both ideas and then collaboratively look forthe best solution that will solve the problem at hand - even at the risk of allowing yourself to be proven wrong - and then move forward. If you both can't reach a consensus by the end of your allocated time, then at that point you need to wind up the meeting with a summary that takes into account the concerns discussed and notes that no consensus has been reached. Regardless of the outcome of your meeting, you thank your junior for the time spent, and indicate that you will return with your decision shortly. After careful consideration of your discussion you will have the option to either allocate additional time for further discussion, or instruct the junior to go ahead with whichever plan you have settled on subject to the outcome of your meeting.
Yes, time is precious at times, however when you choose to take on juniors you need to accept that you are taking on a responsibility to invest in and nurture their professional development, and you need to accept that as a result it will for a while at least cost you time.