Hi Ben,
The answer is: It depends. It depends on the transport and the transaction mode. In general, it works how you outlined it:
It will stop receiving messages from the queue
Finish handling messages currently in the pipeline (some transports do that indefinitely like RabbitMQ or have a timeout of 30 seconds i.ex. MSMQ)
Stop/shutdown
If you have a transactional transport and a transactional mode selected messages after the timeout (if there is any) will be rolled back. If you have no transaction the messages in-flight will already be marked as handled and all bets are off.
Hope that answers your question
Daniel