You can actually still do the fade without the setTimeout.  See The BaseLayerPicker.css/js, particularly `cesium-baseLayerPicker-visible` and `.cesium-baseLayerPicker-hidden`  Then you just css bind them in knockout to showBalloon.