Concurrent Pythons for different things in same project

Crosscompiling a Poky toolchain that comes with its own python (2) to perform setup/relocation.
Later in the project we have internal processes requiring a recent Python 3. The Python3 we have is incompatible with the toolchain Python.

If I first set PYTHON_EXECUTABLE to the toolchain one it works to do the toolchain SDK setup but whatever I have tried to use Python3 later (unsetting the above var, using another name for the Python3 binary) fails.
They are not really concurrent in the sense that the first is only used in the beginning to setup the toolchain SDK, then it could be completely swapped out by the normal Python3.
Concretely, for Python3 I’m doing a find_package(Python3 COMPONENTS Interpreter) which works if I do not first set PYTHON_EXECUTABLE to the toolchain python. If I do set it it fails with

-- Could NOT find Python3 (missing: Interpreter)
    Reason given by package:
        Interpreter: Cannot run the interpreter "/usr/bin/python3"

So I interpret this like it is indeed found but just can’t be run for some reason.
I don’t see what lingers and disturbs the Python3 find activities.

Can this be done like the above somehow? Or do I need to re-architecture the project (which might not be possible/appealing)?
In a cross-compilation setup (this toolchain uses gcc 4.9) it seems like a pretty common scenario to have.

I’m seeing that the docs say you should be able to have at least Python2 and 3 co-existing but I’m failing to do that.
I.e. I’m doing

set(PYTHON2_EXECUTABLE $ENV{PYTHONHOME}/bin/python)
find_package(Python2 COMPONENTS Interpreter)

and then
find_package(Python3 COMPONENTS Interpreter Development)

which leads to the somewhat contradictory
-- Could NOT find Python3 (missing: Interpreter) (found version "3.12.3") as an error.