Regarding your question about the tags to use: if it is an alternative, just use a conflict without obsoletes. The software stack will then 1) not automatically switch to the alternative, and 2) will ask the user if it has to switch because of some dependency.