If NPS keeps failing, stop using the GUI. Use pypkg or PSNStuff (for PS3) as a secondary client. Different clients handle HTTP timeouts differently. Often, NPS fails where a simple wget command would succeed.
When you see an instant "complete" but no file, it means NPS asked the server for the URL, got a 404 Not Found or a 302 redirect to a login page, and gracefully crashed. The client doesn't know how to tell you "That link is dead" because the code assumes the mirror is always alive. nopaystation not downloading pkg
NPS spawns pkg2zip as a subprocess. If the DLLs are missing, the subprocess dies immediately. NPS interprets this death as "Download finished" because it handed off the task successfully—it doesn't check if the handshake killed the baby. If NPS keeps failing, stop using the GUI