'CRTL'+'ALT'+'F2' to see if you can logging to a Console.
That way you might be able to have a look at what the local scripts are doing... perhaps they are not terminating for what ever reason.
Someone can correct me if I am wrong but I believe that unless these scripts terminate this will hold your boot sequence up like this.
Look for a script that is lunching an secondary binary or service that stays resident. if found try appending an
'&' to the end of the execution statement. This will tell the script to continue with remaining script and not wait for an exit on the child process.
there's a lot of maybes there but... its a starting point for you.
Were you having issues with Apache before the crash? not being able to assign a socket to Apache is not a good sign. Something else for you to have a look at.