But, there's no guarantee that every block will be properly marked as erased in some given time frame, nor what may happen if the SSD shuts down before it processes them all. TRIM, as implemented, does work, but is a way of telling the SSD that the block(s) in question can and should be erased, not an imperative that they must be erased right now (from the user's perspective, anyway).
On the other side of that unundelete issue with TRIM is that if you delete a file, but then shut down, it might not get TRIMed, unless a full free space map pass is done, and even then the SSD might need some time to process it all.