Both problems need logs. It's quite a bit over kill but these boot parameters will help provide enough info.

systemd.log_level=debug udev.log-priority=​debug rd.debug x-systemd.timeout=180

The debug options are resource inventive and slow down boot by allot. The point of the timeout is hopefully avoiding the dracut shell. But better to get the shell than an indefinite hang. 

journalctl -b -o short-monotonic --no-hostname > journal.log

Copy that out to a file sharing service, and post the URL.

Chris Murphy