Is there a maximum factor by which difficulty can change?
The difficulty never changes by more than a factor of 4 (except for in a special case that only applies on testnet).

The code that enforces this is here.