That first objection will not occur, since the non-coms giving an object will not occur if you have that item in inventory. Of course if you abort the script, then closet stuff, then run it , etc etc it could but I'd say that is a fringe case.
Thanks for the rewrite!