I don't know what the cause is, but I recognise the symptoms.
My bike does the same. I have read that fluctuating rpm at idle can be
a sign of badly balance carbs, but I'm not sure this would cause problems at higher rpms.
My was doing it and stop after rejetting.
i did a bit of searching and it seems like checking out if the choke can fully be closed as well as carb synking will be good places to start...