To answer this question, you also need to understand the difference between a signal and variable, and also the concept of delta cycles.
1. Signal and variable differences:
A variable is updated immediately, while a signal is only scheduled to be updated at a future point in time, at a minimum of 1 delta cycle later. If multiple assignments are made to a signal in the same delta cycle, then it is the last one that is assigned.
2. Delta cycles.
An HDL simulation (so this applies to verilog too) runs using a concept of delta cycles - ie. an infinitely small partition of time. A process executes statements sequentially in an infinite loop, and if there are no wait statements or senitivity list, the process will loop forever within the same delta. (a compiler warning will be thrown for this in simulation only). Hence why there is no "execution time" in the second process you describe. Because you have clk in the sensitivity list, it is illegal to have wait statements within the process.
So, if a process has a sensitivity list, it will only "execute" once, when the signal in that list has a 'event, and all statements occur inside the same delta cycle. All of the statements are evaluated, and then it waits until there is another 'event on clock.
- - - Updated - - -
Statements in a process executes in zero time. In simulation only you can do tricks like "wait", and the process will ignore the sensitivity list until it finishes.
No it wont, because it's illegal to have a sensitivity list and wait statements in the same process, you can have one or the other.