I'd guess your SSD was doing a synchronous discard which would be slow. I know anything less than SATA 3.1 does it synchronously, and maybe there are other situations too. E.g., maybe async trimming requires a decent amount of free space?
I guess the controller needs some temporary space to do its magic and below that point it will struggle.
The odd fact is that freeing space didn't allow for normal behavior until "forcing" an actual trim.