Где хранится переменная let и const?
да, но этот объект вам недоступен и детали его реализации могут быть разными. 
Можете для простоты считать что переменная "записывается" в блок в котором определена. Тот что "{}"
получить все переменные этого блока в виде объекта нельзя, да и не нужно.
от работы с переменными определенными в window тоже следует избавляться - это плохая практика.
Подробнее на англ. со ссылкой на спецификации:  


A global environment record is logically a single record but it is specified as a composite encapsulating an object environment record and a declarative environment record. The object environment record has as its base object the global object of the associated Realm. This global object is the value returned by the global environment record’s GetThisBinding concrete method. The object environment record component of a global environment record contains the bindings for all built-in globals (clause 18) and all bindings introduced by a FunctionDeclaration, GeneratorDeclaration, or VariableStatement contained in global code.
The bindings for all other ECMAScript declarations in global code are contained in the declarative environment record component of the global environment record.
