First and foremost, the fastcodeml guys didn't replace codeml via refactorising all the functionality of codeml, they refactorised one particular calculation and hence the confusion. fastcodeml isn't a particularly name helpful in truth, because it is not a faster version of all the functionality codeml, its just one of the calculations.
In the authors defence they (notably) improved the runtime of the most intensive calculation in codeml and thats their point - its proof of concept.
Thus, basically no fastcodeml can not be used in this context. fastcodeml runs the branch-site model of codeml only.
What the OP describes isn't how the branch-sites model works, they are describing the branch model.
The branch-site null model sets dN/dS to 1, and the LRT compares dN/dS likelihood between the designated branch(es) between dN/dS fixed to neutral against allowing dN/dS to be any value. Thus it's measuring whether the branch (branches) deviate from neutrality. What the OP describes via, model 0 one rate for the tree versus model 2 meaning two or more rates for the tree (basically two rates) and that is a different analysis and it is called a branch model.
If fastcodeml can be shoehorned to perform sites and branch-models that would be good to know.
There is an issue about 'tip selection' but the key answer concerns the basic difference between codeml and fastcodeml.