I went back to default setup and modified /usr/lib/dracut/modules.d/95resume/resume.sh to 1.) redirect all output to the console 2.) give an execution trace 3.) adding ample of sleep to give the use time to analyze the screen output. Even with all the sleeps the resume hangs every time. So if it is a race condition the race happens before resume.sh is entered. When I add rd.break=pre-mount to the kernel command line and in the emergency shell do nothing but press ctrl-D resumes do succeed every time even with the modified script. I'll attach my modified script and 2 screen pictures.