It’s logic in pt-online-schema-change that allows data to flow to both the old table and the new one. Here’s a full changeset application that will put it into perspective. Ignore the timestamps as I was playing with table locks during the run… 
17:49:05.429 INFO [liquibase.Liquibase]: Executing: pt-online-schema-change --recursion-method=none --set-vars wait_timeout=31536000,innodb_lock_wait_timeout=31536000,lock_wait_timeout=31536000 --max-load Threads_running=120 --critical-load Threads_running=749 --alter-foreign-keys-method=auto --alter="ADD COLUMN new_column BLOB NULL AFTER specific_column" --host=db --port=3306 --user=root --password=*** --execute D=database,t=table
17:49:05.607 INFO [liquibase.Liquibase]: No slaves found. See --recursion-method if host c5c7d31fc20c has slaves.
17:49:05.607 INFO [liquibase.Liquibase]: Not checking slave lag because no slaves were found and --check-slave-lag was not specified.
17:49:05.613 INFO [liquibase.Liquibase]: Operation, tries, wait:
17:49:05.613 INFO [liquibase.Liquibase]: analyze_table, 10, 1
17:49:05.613 INFO [liquibase.Liquibase]: copy_rows, 10, 0.25
17:49:05.613 INFO [liquibase.Liquibase]: create_triggers, 10, 1
17:49:05.613 INFO [liquibase.Liquibase]: drop_triggers, 10, 1
17:49:05.613 INFO [liquibase.Liquibase]: swap_tables, 10, 1
17:49:05.613 INFO [liquibase.Liquibase]: update_foreign_keys, 10, 1
17:49:05.638 INFO [liquibase.Liquibase]: No foreign keys reference `database`.`table`; ignoring --alter-foreign-keys-method.
17:49:05.638 INFO [liquibase.Liquibase]: Altering `database`.`table`...
17:49:05.641 INFO [liquibase.Liquibase]: Creating new table...
17:49:05.650 INFO [liquibase.Liquibase]: Created new table database._table_new OK.
17:49:05.650 INFO [liquibase.Liquibase]: Altering new table...
17:49:05.665 INFO [liquibase.Liquibase]: Altered `database`.`_table_new` OK.
17:49:05.667 INFO [liquibase.Liquibase]: 2020-11-10T17:49:05 Creating triggers...
18:26:19.962 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Created triggers OK.
18:26:19.964 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Copying approximately 1 rows...
18:26:19.966 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Copied rows OK.
18:26:19.966 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Analyzing new table...
18:26:19.970 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Swapping tables...
18:26:19.981 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Swapped original and new tables OK.
18:26:19.981 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Dropping old table...
18:26:19.986 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Dropped old table `database`.`_table_old` OK.
18:26:19.988 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Dropping triggers...
18:26:19.988 INFO [liquibase.Liquibase]: 2020-11-10T18:26:19 Dropped triggers OK.
18:26:19.988 INFO [liquibase.Liquibase]: Successfully altered `database`.`table`.
18:26:19.994 INFO [liquibase.Liquibase]:
18:26:19.994 INFO [liquibase.changelog.ChangeSet]: Columns new_column(BLOB(1024)) added to table
18:26:19.995 INFO [liquibase.changelog.ChangeSet]: ChangeSet schema/242.xml::242-1::exampleuser ran successfully in 2234570ms
18:26:19.996 INFO [liquibase.executor.jvm.JdbcExecutor]: INSERT INTO database.DATABASECHANGELOG (ID, AUTHOR, FILENAME, DATEEXECUTED, ORDEREXECUTED, MD5SUM, `DESCRIPTION`, COMMENTS, EXECTYPE, CONTEXTS, LABELS, LIQUIBASE, DEPLOYMENT_ID) VALUES ('242-1', 'exampleuser', 'schema/242.xml', NOW(), 30, '8:f36414ffb147b249d63509f15ae2794a', 'addColumn tableName=table', '', 'EXECUTED', NULL, NULL, '3.8.6', '5030535644')
18:26:20.003 INFO [liquibase.lockservice.StandardLockService]: Successfully released change log lock
18:26:20.006 INFO [liquibase.integration.commandline.Main]: Liquibase: Update has been successful.