I found a related issue https://github.com/logstash-plugins/logstash-input-file/issues/90 which mentions that auto_flush needs to be set via the auto_flush_interval codec parameter. Once I set auto_flush_interval => 3 I observed the desired behavior.
file {
path => "c:/temp/test.log"
start_position => beginning
sincedb_path => "NUL"
ignore_older => 0
codec => multiline {
pattern => "^%{MONTHDAY} %{MONTH} %{YEAR} %{TIME}"
negate => true
what => previous
auto_flush_interval => 3
}
}