ObjArrayChunkedTask is the optimized implementation that uses the bits from reference representation to optimize marking. 64-bit version verification makes some assumptions about the underlying addresses, notably that heap starts at zero. Also, internal asserts are not consistently checking all components of tasks are actually encodeable. If they are not, we need to fail as soon as possible. For example, if we know that there can be oops that go farther than encodeable oop in ObjArrayChunkedTask, we need to fail on startup.