Plot multi-selection: DynamicMap fails, pn.bind works

I’d like to use hv.dynamicMap to interactively plot selected variables from a dataframe.
When interacting with a pn.widgets.MultiSelector() the plot updates, but plot legend labels fail and seem to remain wrong throughout after the first fail.
Interestingly pn.bind using the same updates just works…

I’d like to use DynamicMap because it seems faster and easily allows further callbacks/streams.

import pandas as pd
import numpy as np
import holoviews as hv
import panel as pn
import hvplot.pandas

import warnings
warnings.simplefilter(action='ignore', category=FutureWarning)

names = list('ABCD')
# names = ['current', 'ref', 'rod_position', 'spool_xs']
colordict = {name:color for name, color in zip(names,hv.Cycle().values[:len(names)])}
randdata = np.random.randint(0,2,(150,4))
data = (np.arange(1,5)*randdata).transpose().cumsum(axis=1).transpose()
df = pd.DataFrame(data,columns=names)

def plot_selection(cols,title):
    return hv.NdOverlay({name:df.hvplot(y=name,title=title,c=colordict[name]) for name in cols})

wdgt = pn.widgets.MultiSelect(options=names,value=names[:2],name='select variables to plot')

          hv.DynamicMap(lambda cols:plot_selection(cols,title='Using: `hv.DynamicMap`'),streams=dict(cols=wdgt)),
          pn.bind(lambda cols:plot_selection(cols,title='Using: `pn.bind`'),wdgt)

panel: 1.0.0
holoviews: 1.17.1
hvplot: 0.8.4