If an IIS reset is performed, do requests that are currently being processed, but not yet completed, get logged in the IIS Logs?
And, requests that have been completed but not yet flushed to the log file, do these still get written to the file?
I guess not, as all in-memory session states are also lost. According to Microsoft documentation on Start or Stop the Web Server (IIS 8):
You can stop IIS when you want to stop the web server from serving content, such as when you upgrade applications. To stop the web server, you must stop the Windows Process Activation Service (WAS) and the World Wide Web Publishing Service (W3SVC). You can then start the web server when you are ready for the web server to serve content again.
When you stop WAS and W3SVC, all sessions connected to your web server are dropped. Any in-memory session state is lost. All sites are unavailable until these services are restarted. Therefore, avoid stopping and restarting your web server if you can.
About IIS Reset Activity:
IISreset.exe is a command-line utility that can be used to stop, start, and restart IIS Internet services.
Note: Restarting or stopping IIS, or rebooting your Web server, is a severe action. When you use IISreset, your Web sites and applications become unavailable, all sessions connected to your Web server are dropped, and you lose existing state in your applications. Changes to the metabase can be lost. Your Web sites and applications will be unavailable until the affected Internet services are restarted.
The IISreset command stops and restarts the IIS Admin Service, the Windows Process Activation Service (WAS), and the World Wide Web Publishing Service (WWW Service).
Avoid using IISreset unless absolutely necessary. Instead, first try to restart an individual Web site or an individual application pool that may be causing problems.
... When a loggable event, usually an HTTP transaction, occurs, IIS calls the selected logging module, which then writes to one of the logs stored in %SystemRoot%\system32\Logfiles\.
As far as I can see, first of all, an HTTP transcation has to be completed to be logged and then the logging service must also run untill it is finished with writing it. So there is a gray area in between the stop and start for the in-flight requestes and very little chance to be writtten fully to log. It also depends on how long the related services will wait before shutting down.
IIS reset perform a clean service restart, as such the log file is closed correctly.
Its not like you kill the process. (or if the restart cant complete due to problematic extension, as the process will hang up and finish killed too in that case)