I haven't had time to do profiling to figure out what it is that makes the first request take a long time, but it doesn't seem to be a per-thread thing; on the Pi, the first request takes 10 seconds or so, and then everything is fast after that. This way, it'll get run right when the Pi boots and starts the server, so it'll be zippy by the time a user connects. In giving Pi-based demos, I've probably said the sentence "Give it a minute; the first request takes a long time, after that it's fast." more than a dozen times.

> we could use to do many things like this across OS

Cool! This is most useful on the Pi (since other places seem to start up quickly), but it would definitely be nice having it cross-platform (I was thinking that the `ka_lite_is_using_port` function that @gimick wrote would be good for this, as it could be used both to verify that the server started up correctly, and in the process get the server ramped up and ready to go, since it's pinging a URL).