I tried to debug it, but the issue is that plymouth works fine if started manualy, even in the initrd. As a better workaround, I added plymouth to the list of modules to omit from the initrd, so that it uses the plymouth on / and not the one inside the initrd and it works fine. I guess it's some kind of timing issue...