Incorrect check for final block not in canonical chain in `forkchoiceUpdated(...)`
Copying out from https://github.com/status-im/nimbus-eth1/pull/2960#discussion_r1954548774 since it's semi-separate from `forked-layers` database issue per se and worth addressing.

https://github.com/status-im/nimbus-eth1/blob/a1a9c6b0275e140cd8d4604e24e44148aca49d00/execution_chain/beacon/api_handler/api_forkchoice.nim#L168-L171
is not correct.

It's perfectly valid for there to be two forks, neither of which (yet) finalizes, and for whatever reason, a CL (and thus EL via fcU) has been following one of them, but the other finalizes. At that point, typically the finalized checkpoint (in CL terminology) or from the perspective of the EL/fcU, finalized block, will not necessarily be part of what `ForkedChain` currently considers to be the canonical chain (which after all, can reorg).