what does this error really indicate
It means that an unexpected epoch change transition occurred that BABE found and rejected when it was validating the epoch change signal transitions of a block it was trying to import, and indicates that your blockchain is bricked and unable to finalize further blocks.
"One invariant of BABE is that you have to have at least one block every epoch_duration slots" - Robert Habermeier
when does this occur?
It happens when you are using the BABE consensus mechanism and your validator set goes offline for more than one epoch. For example in this may occur if many validators ran out of server storage space at the same time.
It is caused in the import_block
block-import handler function of the BABE consensus section of the Substrate source code here and documented here
Is this error common in BABE based chains (or is my chain weird)?
Yes, this error is common in chains that are using BABE. Here are a few examples:
Does it imply that if all nodes in a substrate blockchain were to go offline, it couldn't be restarted?
It may be restarting using the "hard spoon", "time warp", or "purge chain" approach, as documented here and answered here.
If you choose the "hard spoon" approach then it may be advisable to switch to using Aura for block production instead of Babe since it does not experience this same issue of becoming bricked when the validator set goes offline for more than one epoch, and it also does not cause delays in block production. Different ways to get a snapshot of the on-chain storage state of an existing blockchain, such as all account balances that are to be included in the genesis of the new blockchain is described here.