However, there is no BINLOG_GTID_POS in PS and GTID_EXECUTED isn't saved by START TRANSACTION WITH CONSISTENT SNAPSHOT, so I see no other workaround than to force FTWRL or don't use GTID.
Possible ways to fix are to implement something like BINLOG_GTID_POS or to save GTID_EXECUTED along with binlog position when snapshot created.
However, there is no BINLOG_GTID_POS in PS and GTID_EXECUTED isn't saved by START TRANSACTION WITH CONSISTENT SNAPSHOT, so I see no other workaround than to force FTWRL or don't use GTID.
Possible ways to fix are to implement something like BINLOG_GTID_POS or to save GTID_EXECUTED along with binlog position when snapshot created.