Vacuum or air leaks can cause the idle to sway around like that.
There isn't much ran by vacuum except the brake servo, so first check that is all ok and no splits or cracks have appeared in the pipe.
Another, and I suffered from it, was the upstream O2 sensor.
The car would swing it's rpm around like that after a cold start and would do it all day unless I turned the engine off hot and restarted it, then it ran ok.
When trying to log what was happening with a diagnostic tool I noticed my fuel status wasn't tripping into Closed Loop after a cold start and the car would rev it's self up and down just like yours.
It just keep starting in Open Loop as it should from cold, then as it warmed up, instead of tripping into Closed Loop it tripped into some failsafe Open Loop-System Fault fuel setting (I presume a really rich setting to save the engine).
As the coolant and all the other sensor appeared to be reading correctly I guessed it was the O2 failing to self heat quick enough (that's why it ran ok after a hot restart, the exhaust gasses had heated it up enough by then)
As luck has it, the up and down stream O2's have the same part number and as the down does very little (monitors the cat's performance, where the up trims the fueling once in cloded loop), I swapped them over and bingo, it was all back to normal.
Oddly enough there was no engine check light when this was all going on, though I did manage to get the odd pending code, which I later found was O2 related.