The point is that consif isn't a good name. It isn't obvious what the condition is, and it isn't obvious that it returns b if the condition isn't met. conswhen is even more egregious since its connection to consif is totally different from if vs when.
The name of 'pushnew isn't bad at all, so how about the names "construe" for 'consif and "conscheck" for 'conswhen? They would be cousins to the hypothetical 'pushtrue, 'pushcheck, and 'consnew.
The name of 'maybe could be... um... "combinetrue".