how did you handle the chainwork?
By expanding it to 512 bits. Because if you can produce any SHA-256 result, then all following blocks could hash into zero. Which means, that you will then have the current chainwork as it is, and the new chainwork somewhere else. And then, a new hash function could be executed on the same data, so it would be difficult to produce again.
did you keep the legacy calculation and rely on the new validation rule?
The legacy part would just contain the low 256 bits, and the new part would contain only the upper 256 bits of 512-bit chainwork.
Why not configure the new nodes to calculate chainwork using the new field after the fork height?
Well, you can do that.
It will only appear outdated in the old nodes.
Which is tricky, because then, one ASIC block, valid in the old network, could potentially reorg a lot of new ASIC blocks from the new network, because their chainwork would be weaker. Which means, that technically, it could be a soft-fork, but it has a high chances of leading to chain splits, even if you will have hashrate majority on your side. Just because the blocks perceived by "strong" in the new network, won't be counted as such in the old network.
It is similar to switching from the longest chain to the heaviest chain: new nodes follow the new rules, but old nodes can still be tricked, to accept a weaker chain. The difference is, that this time, having hashrate majority is not enough, to get all nodes on the same chain, if they count things differently.
Invalidating blocks with >20 min timestamp (road C) and introducing a new bits field (road D) are the only consistent softfork proposals that have a chance of actually working.
Honestly, I think the longer you would think about possible solutions, the lower chances you would have to actually deploy something.
If you would have a plan, like "just hard-fork, and don't care", then you know, what to do, and how to do it.
If you would start making a lot of different solutions, then you wouldn't know, which solution is better, and you will endlessly invent new ones, instead of deploying anything, and moving forward.