Could this be avoided by having the standby check the WAL archive before promotion?
I'm afraid we can't say anything about how archiving works for the whole cluster. It's quite possible that archiving configured only on primary or primary and secondary use different archive locations or maybe you have archive_command but not restore_command configured, etc...
Maybe we can add an exception and let the new timeline start after incomplete contrecord? Most likely it will cause problems that I'm unaware of, but it seems we can handle such record in both timelines.