Thanks for the demo. Sometimes its good just to test things like that.
What you are doing is fine, but its probably worth pointing out that those conditions only run when then timeline is being built, not when it is running.
In other words, if you restart the timeline, its not like those conditions will be re-evaluated and you'll get a different animation if the those elements got removed for some reason.
If you need the timeline to behave differently each time it is run, I would suggest creating a function that you call that would re-create the timeline based on the conditions that exist at that time.