About your options.
I don't think subclassing here is a good idea. As I see you don't follow the "is - a" relationship here. If they have slightly different defaults - than it is different objects of the same class, but not different classes, since they don't have different behavior.
Factory option looks much better. You don't need to create new class for each new defaults you want. And factory abstracts the underlying logic nicely.
I propose you another idea. Implement something like "Builder" pattern, to achive constructions like this:
createTimeline().withStartEvent().build()
or
createTimeline().withStartEvent().withAnotherDefault("def").andWithSomeAddition(42).build()
I don't know Java well, but I sure this could be implemented, and won't be significantly harder then factory, but readability would be better (as for me).
If Java allows a way to declare implicit type conversions - you could end up without that build()
call