For anyone that this might help, I found a solution after a few more days of migraine. There were two separate issues, one on a library (caused the false readings) and one hardware (maybe caused the delays, maybe unrelated).
First:
After restarting my computer, I found that the following error message started appearing in the debugger:
In file included from C:\Users\Alexandre\Documents\Arduino\libraries\PN5180-Library-master\PN5180.cpp:22:0:
C:\Users\Alexandre\Documents\Arduino\libraries\PN5180-Library-master\PN5180.cpp: In member function 'bool PN5180::switchToLPCD(uint16_t)':
C:\Users\Alexandre\Documents\Arduino\libraries\PN5180-Library-master\PN5180.h:72:30: warning: left shift count >= width of type [-Wshift-count-overflow]
#define LPCD_IRQ_STAT (1<<19) // LPCD Detection IRQ
^
C:\Users\Alexandre\Documents\Arduino\libraries\PN5180-Library-master\PN5180.cpp:430:29: note: in expansion of macro 'LPCD_IRQ_STAT'
writeRegister(IRQ_ENABLE, LPCD_IRQ_STAT | GENERAL_ERROR_IRQ_STAT);
^~~~~~~~~~~~~
C:\Users\Alexandre\Documents\Arduino\libraries\PN5180-Library-master\PN5180.h:71:37: warning: left shift count >= width of type [-Wshift-count-overflow]
#define GENERAL_ERROR_IRQ_STAT (1<<17) // General error IRQ
^
C:\Users\Alexandre\Documents\Arduino\libraries\PN5180-Library-master\PN5180.cpp:430:45: note: in expansion of macro 'GENERAL_ERROR_IRQ_STAT'
writeRegister(IRQ_ENABLE, LPCD_IRQ_STAT | GENERAL_ERROR_IRQ_STAT);
^~~~~~~~~~~~~~~~~~~~~~
I know enough to recognize that this would cause the kind of bugs that I was getting, since the overflow would send false data all over the place. I don't know enough to fix the libraries, so instead I tried different forks until one worked (it was the original, unmodified one, in fact). This eliminated the unreliable readings.
Second:
Then, patching the RFID reader into the rest of my system, I found that it didn't work anymore. It took a while, but I found the solution on the following thread:
It was a sub-par SD card reader (Joy-it ST7735) that was causing SPI issues. I tried adding a resistor on the MISO pin as suggested: higher than 1.5 kOhm stopped the SD, lower than 150 Ohm stopped the RFID reader. 680 Ohm, and everything seems to work!
Anyways, problem solved. I hope that this can help someone eventually!