Okay, I understand now.

There are many things that store status information in Windows. Naturally, customizations you make to desktop background, color schemes, all those things are remembered. The placement of various Window positions on the desktop can be remembered so that when opened again, they open in the same place. Likewise, Virtual Desktops can be remembered because that is a component managed by the Operating System itself.

However, it's simply not possible to bring up all apps in the same state after a reboot. To do that, Windows would need to know things about every single app that are only managed by the app itself.

So, in summary, Windows will bring up the same Virtual Desktops, but it cannot control those applications.

Besides, the whole purpose of doing a reboot is to clear the contents of memory, close all apps, and start up fresh.

So, unfortunately, you are left with these options:

You can perform a sleep or hibernate so that the next time you come back to your computer everything will be in the same state. If you need to power off your system that leaves you with only hibernation as an option.

OR

You can save any work in progress, shutdown your apps, perform a restart, then re-launch your apps and open saved work.

A third party app won't help here because it too would need to know details managed locally by each app.