Bah. Made it work, I think, but somewhat pointless right now: The logs are sorted by the starting session time of the first session in each log. But the [name].N.log files can contain sessions before and after the starting session of [name].log, so I'd have to add a bunch more stuff if I want things in order... orz

Code:
alias logfiles {
  if ($window(@Logfile).font) { window -c @Logfile | return }
  if ($window(@Logfiles).font) { window -c @Logfiles | return }

  /window -c @Logfiles | window -c @Logfile

  if ($1 == combine) /window -h @Logfiles
  else /window -lex @Logfiles 

  /var %loop = 1, %file
  while (1) {
    %file = $findfile($qt($logdir),*.log,%loop)
    if (!%file) break
    aline @Logfiles %file
    inc %loop
  }
  /filter -awwc @Logfiles @Logfiles logsort

  if (!$1) halt

  /window @temp
  /window -h @log_buffer
  /var %loop = 0, %last_line, %current_line, %trip = 0
  while (%loop < $line(@Logfiles,0)) {
    inc %loop
    %current_line = $line(@Logfiles,%loop)

    /aline @temp $chr(160)
    /aline @temp >> last = %last_line ///// current = %current_line

    inc %trip
    if ($gettok(%current_line,1-3,46) != $gettok(%last_line,1-3,46)) {
      if (%trip > 1) {
        /aline @temp --Clear the original log: /write -c $qt($+($gettok(%last_line,1-3,46),.log)) $cr
        /write -c $qt($+($gettok(%last_line,1-3,46),.log)) $cr
        /aline @temp --Dump the contents: /filter -wf @log_buffer $qt($+($gettok(%last_line,1-3,46),.log)) *
        /filter -wf @log_buffer $qt($+($gettok(%last_line,1-3,46),.log)) *
      }
      /aline @temp --Clear the buffer window and reset %trip!
      /window -c @log_buffer
      /window -h @log_buffer
      %trip = 0
    }
    /aline @temp ~~ Append the contents of $qt(%current_line) to the @temp window: /filter -fw $qt(%current_line) @log_buffer *
    /filter -fw $qt(%current_line) @log_buffer *

    %last_line = %current_line
  }
  %loop = 0
  while (%loop < $line(@Logfiles,0)) {
    inc %loop
    if ($regex($line(@Logfiles,%loop),.*\.[1-9]\.log$)) { /remove -b $qt($line(@Logfiles,%loop)) | aline @temp ====Delete: /remove -b $qt($line(@Logfiles,%loop)) }
  }
}
alias logsort {
  if ($gettok($1,1,46) != $gettok($2,1,46)) return $iif($gettok($1,1,46) < $gettok($2,1,46),-1,1)
  if ($ctime($gettok($read($qt($1),2),3-,32)) != $ctime($gettok($read($qt($2),2),3-,32))) return $iif($ctime($gettok($read($qt($1),2),3-,32)) < $ctime($gettok($read($qt($2),2),3-,32)),-1,1)
  ;if ($file($qt($1)).mtime != $file($qt($2)).mtime) return $iif($file($qt($1)).mtime > $file($qt($2)).mtime,1,-1)
  return 0
}
menu @Logfiles {
  dclick:{
    window -ex @Logfile
    filter -cfw $qt($sline(@Logfiles,1)) @Logfile *
    window -c @Logfiles
  }
}