1] When we say commit; all that happens physically is that LGWR flushes the log buffer to Disk.
DBWR does absolutely nothing.
2] To make a transaction durable, all that is necessary the changes that make up the transaction be on disk; there is no need whatsoever for the actual data to be on the Disk.
3] LGWR writes in very nearly real time, virtually all the transactions changes are on disk already.
4] When LGWR process is ON, the session hangs till it completes the process.
5] After the process is completed , session is then free to continue and from then on all other sessions will no longer be directed to the undo blocks when they address the changed table, unless the principle of consistency requires it.
Note : In normal running , DBWR writes only a few dirty only a few dirty buffers to disk ; when a check point is signaled it writes all dirty buffers to disk.