FOLLOWUP: I'm still getting timeout errors, but sometimes it works.
OK, I think I was misunderstanding how the libraries work in Atom. Or there's a bug.
The key is to not have any local libraries. If I do an "Add to current project" for all the libraries in my code, it compiles cleanly under 0.5.3 AND 0.6.2 AS LONG AS THERE ARE NO LOCAL LIBRARIES.
Previously I did "Copy to current project", which puts them under ~/Particle/projects/<projectName/lib/ while the compiler seems to be looking for them under ~/Particle/projects/<projectName/src instead. I didn't try moving them to where the compiler thinks they are, but will in the future when I need to make changes to a library.
If you have any libraries under ~/Particle/projects/<projectName/lib/ then it seems it won't compile. Once you remove them, it does.