I've finally solved this. Plymouth most likely gets interrupted while switching framebuffer driver, so the solution is just to add ShowDelay=3 to /etc/plymouth/plymouthd.conf, re-run dracut -f. I've tested different seconds for ShowDelay, 1 does not work, 2 and more works.