<p>As I understand it, <code>.bat</code> is the old 16-bit naming convention, and <code>.cmd</code> is for 32-bit Windows, i.e., starting with NT. But I continue to see .bat files everywhere, and they seem to work exactly the same using either suffix. Assuming that my code will never need to run on anything older than NT, does it really matter which way I name my batch files, or is there some <strong>gotcha</strong> awaiting me by using the wrong suffix?</p>

No - it doesn't matter in the slightest.  On NT the .bat and .cmd extension both cause the cmd.exe processor to process the file in exactly the same way.
Additional interesting information about command.com vs. cmd.exe on WinNT-class systems from MS TechNet (
http://technet.microsoft.com/en-us/library/cc723564.aspx
):
This behavior reveals a quite subtle
  feature of Windows NT that is very
  important. The 16-bit MS-DOS shell
  (COMMAND.COM) that ships with Windows
  NT is specially designed for Windows
  NT. When a command is entered for
  execution by this shell, it does not
  actually execute it. Instead, it
  packages the command text and sends it
  to a 32-bit CMD.EXE command shell for
  execution. Because all commands are
  actually executed by CMD.EXE (the
  Windows NT command shell), the 16-bit
  shell inherits all the features and
  facilities of the full Windows NT
  shell.