Forget fonts and page layout and all the rest of it. They don't matter
at this point. It only makes sense to think about them later. Start by
understanding what the content of a LaTeX document looks like.
Learn what semantic or logical markup means and how to use it. Avoid appearance markup and you can defer
most of the choices you are fretting about until you have the
knowledge you need to make informed decisions.
You are confusing different things. Your question suggestions you are considering using LuaTeX instead of LaTeX, but that doesn't make sense. Besides, the rest of your question assumes LaTeX because the packages you mention are all LaTeX packages.
TeX itself provides primitives for formatting source code to produce a typeset document. It is an example of an engine. But we don't usually use TeX directly. Instead, we use a format which provides higher-level macros built on the primitives.
Formats include plain and LaTeX, but there are others. In addition, it is possible to load sets of additional macros or redefinitions of the format's macros, as well as defining or redefining them in the document. When we use the LaTeX format, the standard ways to do this include
The class sets the overall default format of the document and often adds additional macros and redefine existing ones. Packages alter the default format and/or add further macros and/or redefine existing ones.
All of this is loaded up and affects the processing of your document when you compile the source to produce the typeset output. You can do this with the TeX engine mentioned above. However, we now have additional engines to choose from. These include pdfTeX, XeTeX and LuaTeX.
So, you choose:
- an engine e.g. TeX or pdfTeX or XeTeX or LuaTeX, ...;
- a format e.g. plain or LaTeX, ...;
- additional sets of predefined/redefined macros e.g. a class, packages, ...;
- document-level options, additions etc.
The choice of an engine and a format are largely orthogonal to each other. You can choose plain and XeTeX or LaTeX and LuaTeX or plain and pdfTeX or LaTeX and TeX or LaTeX and pdfTeX or plain and LuaTeX or ....
However, if you choose LaTeX, then there is an additional consideration. A very small number of packages work only with particular engines, are fully supported only when using particular engines or require the addition of compatibility code when used with particular engines.
unicode-math work only with XeTeX and LuaTeX.
microtype is fully supported only by pdfTeX, mostly supported by LuaTeX, partly supported by XeTeX and unsupported by TeX.
pstricks is directly and fully supported by TeX and XeTeX, but requires compatibility code to work with pdfTeX because pdfTeX cannot use postscript images unless they are first converted to another format. In contrast, TeX cannot include anything but postscript images without conversion.
There is no magic formula because there is no best combination of the various elements which combine to format the document. The best combination is a function of the document and its author.
The differences between formats are much greater than those between engines in terms of their implications for writing the document. In most cases, it is relatively straightforward to switch from, say, pdfTeX to LuaTeX. In contrast, a document coded in plain would need very substantial rewriting to become a LaTeX document.
Since you are using LaTeX, therefore, you should just write a document in order to learn the basics. At this stage, it is irrelevant which engine you choose and you should not even consider which packages you might want until you need them. Indeed, until you have some knowledge and experience, you are not even in a position to select a class. So avoid class-specific code. Start with a standard class e.g.
book and figure out the basics. Only at that point will it be possible to make a meaningful choice of class. Read the documentation for the class you choose, experiment and continue. Add packages only if you need them.