The reason why Lennart decided to start systemd is publicly documented: the 2 facts that upstart had a serious design flaw requiring large changes, and that Canonical required copyright assignment for those changes. CLAs that unilaterally benefit a single for-profit business entity are generally seen as problematic.
Read this thread:
https://web.archive.org/web/20140928104327/https://plus.goog...
Here, Upstart author and former Canonical employee Scott James Remnant wrote:
Had the CLA not been in place, the result of the LF Collab discussions would have almost certainly been contributions of patches from +Kay Sievers and Lennart (after all, we'd all worked together on things like udev, and got along) that would have fixed all those design issues, etc.
But the CLA prevented them from doing that (I won't sign the CLA myself, which is one reason I don't contribute since leaving Canonical - so I hold no grudges here), so history happened differently. After our April 2010 meeting, Lennart went away and wrote systemd, which was released in July 2010 if memory serves.