The minecraft world setting's file has a limit that min_y + height has to be lower than 2047 (min_y + height < 2047).
Note: the explanation takes min_y as 0. Height has to be a multiple of 16
This makes generating a world with height 2048 with as highest y value 2047 (likewise height 256, has as highest y value 255) impossible, because 0 + 2048 > 2047.
Old explanation: blocks start generating at y = 0, y = 0 contains a block. Counting from(and including) y = 0 till y = 2047 is 2048 blocks. In a normal minecraft world with a 256 world height, 255 is your highest block, included with the block at y = 0 your world height is 256 again. In the world settings the world height is 256 by default, it includes 0. So, the height in the custom world height settings should be 2048 instead of 2047, since 2048 includes 0 and 2047 doesn't.
min_y + height ≤ 2048; min_y + cannot be higher than: 2048;
This has not been fully fixed!
This has only been fixed for the the json "height" in "type"
and not for "height" in "noise", which is now off by 1 again, just like the original issue, this should be changed to 2032(or 2048 but see opinions on the fix for this), this is broken right now.
The currently given fix limits min_y to 2032, and height to 4064(not counting the currently still 1 off in the height from "noise"), is there any specific reason the height isn't max 4096, with min_y -2048?
Panda has replied to this in the comments.