Well, this may be too late to answer, but I just wanted to get this out, cause this has caused enough confusion already (for me at least)...
If you call parent::beforeSave() in your model's beforeSave(), and test for isNewRecord after this, it will always evaluate to false, because model is saved.
You have your model built on top of a framework class, so when you override a method, do your task first then call on the parent method. So: