Are there any tricks to speed up the IPNS lookup time? It seems to take something like 5-10 seconds per request, where if I'm looking up a few published links it can take quite a while.
I don't think there are any major tricks right now. There's at least one issue for this here: https://github.com/ipfs/go-ipfs/issues/3860
The fact that ipfs.io uses an /ipfs/ dnslink record instead of an /ipns/ one adds some weight to the assumption that there's probably not currently a way to make IPNS lookups fast. My impression is that there are some significant changes planned for IPNS so this may change in the future.
As of v0.4.14, IPNS resolution is a lot faster now when using the new pubsub IPNS resolver and publisher: https://ipfs.io/blog/34-go-ipfs-0.4.14#ipns-improvements.