The problem with most IRC software is that they're not always online. The usual solution is irssi, which is what I've used for the last 6 years.
I thought it'd be annoying having to add servers through the ZNC interface (either web or SSH) but it automatically adds/removes them when you join/leave.
In terms of buffers, I generally don't have it set to 2000+, normally around 100 max. I'll just go through the logs if I really need to catch up.
I also compiled a module for ZNC that sends push notifications to Colloquy when a PM, highlight word or name mention happens.