in "normal" circumstance using only core features of SQL Server that allocates from the Buffer Pool and no direct OS allocations, Committed memory should be about equal to process physical memory.
In older versions of SQL Server, setting max server memory only constrained the buffer pool and not direct OS allocations.
In more recent versions, target memory is now the combined buffer + direct?
Hence, if something is making direct OS allocations, and not releasing it when done, SQL Server will start releasing buffer pool allocations to bring total memory to inside the limit set for target.
If too much direct allocations are made, then too little is left for the buffer pool
It would seem that whatever makes direct OS allocations is unconstrained, hence committed grows larger than target and stays larger.
However, something that works within the buffer pool now runs into a situation where it generates the error message, because very little allocation can be made from the buffer pool.
Perhaps a necessary feature for SQL Server, now that Max Server memory is combined buffer pool + direct, then there also needs to be a setting for minimum buffer pool (not min. server memory) such that direct allocations can only push out buffer pool to a set limit