Yes, yes, and maybe.
The possibility of bad oxygen sensors is obvious. Their outputs can, however, be checked.
Vacuum hoses on a 21 year old engine are always a possibility. There are ways to test them using a vacuum gage and/or even spraying them with ether while the engine runs. If there’s a leak, the engine’s idle will race when the ether hits the leak. But IMHO vacuum line by the foot is so cheap that if they’re suspect it’s better to just change them one by one and see what the result is.
Timing chains: while they’re a very stable way of timing the valves, if your engine has Variable Valve Timing oil pressure problems can cause valve timing problems. And chains can stretch over time.
Which brings me to the valves. Sticky or worn valvetrain components, including lifters, rocker arms, weak springs, etc can and do cause problems on old engines.
And then there’s erratic injectors. And bad compression.
Gotta go now. My REPLY button is disappearing.