The driver model is probably a behavioral with too much idealness
and that's often the root of timestep errors - something is moving
too fast for the max timestep you called out, the engine "gets out
over its skis" by missing some edge that mattered and can't back-
step the timestep to get out of the hole.
Some simulators apply "special methods" keying on pulse source
events, to get this under control. Some do not, and some fail to do
the same to other source-types (like vpulse and vpwl maybe, but
not a behavioral source or switches, etc.).
I have seen more than a couple people on the ngspice forum with
what looks like the same problem. You might look for alternate
driver models made by people with a better clue / quality control.
Or make one yourself out of stuff that solves cleaner.