Just a comment: you could use a FeaturesOverlay here instead of a vector layer. With a FeaturesOverlay you should be able to avoid the assureLayerOnTop juggling.