So to get this straight, you do have the knowledge, you do have the experience. But when it comes to hacking you really do not know much yet right?
I see you have a lot of ideas, and some of them seem advance but moreover very unnecessary. I suggest starting with a simple aimbot, or a simple triggerbot, or simple anything really. There are tons of tutorials for these things and they give you a good idea of what it actually means to hack a game, how to hook, entity lists etc.
Moreover I also recommend quickly learning about static analysis. Cheat engine is dynamic analysis which is nice but very limited. Get used to using IDA pro and just try things out on simple games to start off with.
To answer your question what the difference is between External and Internal.
External hacks are hacks that are loaded individually and have memory stored in it's own process. It reads memory and writes memory to an external process. Cheat engine is a fine example of an external way to hack games (if u use cheat engine to hack something).
Internal is loading memory inside the actual process you want to hack. This can be done by injecting a DLL into that process, in which it will allocate memory for your program into that process. Or manually load the memory(the program) into that process.
I personally prefer Internal, mainly because it feels more as if you made an addition(mod) to the game. It's generally faster and you don't have to rely on the functions: ReadProcessMemory and WriteProcessMemory.
Obviously the preference is something for you to find out what you prefer.
I hope this satisfies you answer well enough