Hi Bob,
Somewhat good news - a major revision to SwiftShader is underway - see
http://crbug.com/1209250 - and it looks like this will fix this issue.
Running Chrome with SwiftShader's old OpenGL ES frontend (on macOS) via:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --user-data-dir=/tmp/c1 --disable-gpu
your 2D canvas example renders correctly but not the OffscreenCanvas version.
However, with SwiftShader's new Vulkan frontend:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --user-data-dir=/tmp/c1 --use-cmd-decoder=passthrough --use-angle=swiftshader-webgl
the OffscreenCanvas version renders correctly.
Please post again if you see more problems, and feel free to file bugs against Chrome yourself - please post the bug IDs on this list if you do, so our team can make sure to see them.
-Ken