I posted this on Fedora's Bugzilla, https://bugzilla.redhat.com/show_bug.cgi?id=1881488 but it was closed. Not sure if X2Go or Gazebo is the problem.
Running the following:
gazebo-11.1.0-2.fc33.x86_64, 5.9.16-200.fc33.x86_64
From top:
    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 167977 myuser   20   0   19.6g 325912 148004 S 882.6   0.2   5:33.38 gzclient

And from strace, wouldn't all of the "Resource temporarily unavailable" be troublesome?

futex(0x557771fbecec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x557771fbec98, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=32, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=32, revents=POLLOUT}])
writev(32, [{iov_base="\201\3\n\0\4\0\200\2\3\0`\2\300\3@\2\0\0\0\0\300\3@\2\0\0\0\0\30\2\0\2"..., iov_len=40}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 40
recvmsg(32, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(32, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=45, events=POLLIN}], 3, 0) = 0 (Timeout)
write(37, "\1\0\0\0\0\0\0\0", 8)        = 8
write(37, "\1\0\0\0\0\0\0\0", 8)        = 8
poll([{fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=45, events=POLLIN}], 3, 0) = 1 ([{fd=37, revents=POLLIN}])
read(37, "\2\0\0\0\0\0\0\0", 16)        = 8

futex(0x557771fbecec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x557771fbec98, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=32, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=32, revents=POLLOUT}])
writev(32, [{iov_base="\16\3\2\0\4\0\200\2", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8
poll([{fd=32, events=POLLIN}], 1, -1)   = 1 ([{fd=32, revents=POLLIN}])
recvmsg(32, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\30=\5\0\0\0\0\236\0\0\0\0\0\0\0\254\3@\2\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32


futex(0x557771fbecec, FUTEX_WAIT_PRIVATE, 0, NULL) = 0
futex(0x557771fbec98, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=32, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=32, revents=POLLOUT}])
writev(32, [{iov_base="\201\3\n\0\4\0\200\2\3\0`\2\300\3@\2\0\0\0\0\300\3@\2\0\0\0\0\30\2\0\2"..., iov_len=40}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 40
recvmsg(32, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
recvmsg(32, {msg_namelen=0}, 0)         = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=45, events=POLLIN}], 3, 0) = 0 (Timeout)
write(37, "\1\0\0\0\0\0\0\0", 8)        = 8
write(37, "\1\0\0\0\0\0\0\0", 8)        = 8
poll([{fd=37, events=POLLIN}, {fd=38, events=POLLIN}, {fd=45, events=POLLIN}], 3, 0) = 1 ([{fd=37, revents=POLLIN}])
read(37, "\2\0\0\0\0\0\0\0", 16)        = 8
write(37, "\1\0\0\0\0\0\0\0", 8)        = 8
futex(0x7f82a1f3f958, FUTEX_WAKE_PRIVATE, 2147483647) = 1