I think your assertion are a little extreme in regard to us ending up in camps.
Having said that....I'm not actually buying into the "anything for the children" frame. But I am of the opinion that we are playing directly into the anti's hands by doing nothing. We are the adults. It's up to us to find solutions or strategies to deal with these events. We know theses events exist and they occur and there are copycats so there will be more. I am not an anti so I believe we need to work to spoil all future attempts be it in a school, church, mall, concert...wherever. That means good people must take up arms so they are ready to respond immediately to a potential threat.
I am under no illusion that stopping these events will slow down or change the gun grabber's mind. It will just take these situations off their radar and strip them of a bit of ammunition. Their ultimate goal will never change. But why do we need to sit by doing nothing and watch children die? I am also not of the mind that we just let the kids sit there unprotected and be slaughtered.
The goal isn't to slow down the gun grabbers. That is a different fight. The goal would be to slow down the gunman/shooter. I am of the mind that if these people are met with any type of resistance it can cause enough of a delay to allow support to get on scene and eliminate the threat. In most of these cases it is a lone gunman. One, two or even three people shooting back is going to force him to alter his plans quickly. See, these are "GUN FREE" zones and they do not expect to see any GUNZ.
If you want to let the kids shelter in place that's fine. Just put processes in place ensure that nobody can get to them until the threat is neutralized.
I believe your solution or at least you implied that teachers whether armed or not to charge the gunman armed with a semi-automatic firearm....And I agree that this is potentially a last ditch effort to subdue the gunman but it might make more sense to try and neutralize him with our own firearms from a covered position. But I could be wrong.