Modern protocols quite often rely on historical choices and maintain them for good reason.
a. the receiver will detect the image size by determining the image edges in the source image as the vertical and horizontal sync signals are still sent in the HDMI signal.
b. the off-screen area is probably not pre-defined (but I did not read the HDMI specification). It is about 20% for horizontal "off-screen" and 10% for vertical "off-screen".
With our good old CRT screens we called this "off-screen area" the blanking. So this is the area where the incoming signal said that no video should be generated.
During horizontal blanking, the "beam's positions" would return to the left side of the screen and during vertical blanking, the beam returns to the top (and left) of the screen - the duration of the blanking allows to determine if the blanking is also vertical or not. We refer to the signals as vertical and horizontal sync. Apparently (from your link) the HDMI protocol still has the horizontal and vertical sync.
This blanking is apparently called off-screen now, as there is no actual blanking being done. The time available can thus be used for "housekeeping". Which can include: saving the line in "video memory", resetting some counters, and more generally do any computation that could not be done while the incoming data had to be decoded.
In the historical signal, blanking was shorter than the "off-screen area" because the beam needed to start moving to the right again before putting any actual video on the screen. Otherwise the image would be compressed somewhat on the left side because the speed would not be constant yet. A similar margin was applied on the right side for other reasons.
Several standards (NTSC, PAL) will indicate picture sizes and total sizes to use for video, but in practice many more formats exist. I did not read the HDMI standard, but I am sure that they are flexible on that.
Usually horizontal blanking is about 20% of the horizontal time, and vertical blanking about 10%. The actual numbers will depend on the frame rate and pixel clocks.
So how does the TV know the size of the image? There are several ways: one method is that the TV/monitor detects the width of the image (by checking which pixels are black and which are not), another is that the user configures this. On my TV both are possible within the list of available formats.
When I designed FGPA's for video treatment, we analyzed counted the number of black pixels from the sync edge to determine the offset and we determined the end of the line/last line by detecting the black pixels again. We had some algorithm to get the "best guess" for the whole image and for several frames.
A TV would pick from the preset list of formats and has to fit it on the digital (!) screen. So a 640x480 format would scale up to 1280x960 as that implies "simple" repetition of pixels and lines. It does leave a lot of black area on a 1920x1080 screen tough (so the off-screen area is not entirely off-screen in that case and even bigger than the off-screen area in the source signal!).