Thanks to UncleMike for writing this.
Profile: name: Clock App
Context: Application <clock app>
Context: Time 23:00 - 07:00
Enter Action: Keyguard Off
Auto Brightness Off
Display Brightness 0
Profile: name: Screen On
Context: Application <clock app>
Context: Display On
Action: Variable Set %FLASHCLOCK 1
Action: Wait 5 seconds
Action: Variable Clear %FLASHCLOCK
Profile: name: Flash Clock
Context: Variable Value %FLASHCLOCK = 1
Enter Action: Display Brightness 100
So, between 11pm and 7am, if the clock app is the foreground app, turn off auto brightness and set the brightness as low as possible. If you wake the device while it's in this state, the screen brightness will be bumped up to 100 (out of 255) for 5 seconds, then then return to the lowest setting.
If you exit the clock app, or if 7:01am arrives, the settings for keyguard and brightness will be returned to their original settings. You can adjust the duration of the flash and the brightness to suit your needs. You could also supplement this will a Day of Week context if you like.
I see you mentioned "nightstand mode". If you're using a detectable dock, you may be able to use a Dock context in place of (or in addition to) the Application context above.
Because the Display On context is an event, Tasker does not restore settings to their previous value. By using the %FLASHCLOCK variable and the Flash Clock profile (which uses only a State context) we can trick Tasker into restoring the settings after the brief change. I don't think it's really necessary in this case, but I've developed a habit of using events to create states.