Pour remédier à ce problème, deux solutions différentes sont possibles.
1) ajouter un gestionnaire juste après le append(). Ca demande de réorganiser / dupliquer du code.
2) profiter du "bubbling"
On va préférer la (2)
L'événement mousedown est d'abord transmis à <li> puis à son père <ul>, puis à son père <body>...
On peut don installer le gestionnaire mousedown sur <ul> au lieu de <li>. <ul> est bien présent au démarrage du programme.
Il reste alors à vérifier dans le gestionnaire que l'utilisateur a bien cliqué sur un <li> (et pas sur le <ul>).