I found a solution on my own:
Since curses is completely unaware of the Caps Lock setting according to ΤΖΩΤΖΙΟΥ, I tried an alternative solution. Specifically, I looked up how to check Caps Lock in a BASH script. What I found was this:
Linux only. Requires X Window System.
$ xset q | grep LED
> auto repeat: on key click percent: 0 LED mask: 00000000
The last 0 in that output (the 66th character in the string) is the Caps Lock flag. 1 if it's on, 0 if it's off.
Python can run UNIX system commands with the Linux-only commands module. commands does not appear to interfere with curses.
>>> import commands
>>> # Caps Lock is off.
>>> commands.getoutput("xset q | grep LED")[65]
'0'
>>> # Setting Caps Lock on now.
>>> commands.getoutput("xset q | grep LED")[65]
'1'
This works fine for me; this is a personal-use script, and it's not like my program wasn't already Linux-exclusive. But I do hope somebody has another, more Windows-compatible solution.
I'm going to accept this self-answer for now, but if somebody else can come up with a better working solution, I'd like to see it.