free & top do report all ram that's in use, but a part of it is caches that can be freed as necessary. These are not included in htop's number.
There are two things mixing things up a bit with regards to the caches, TC being in tmpfs (cache that can't be freed), and the compressed swap (takes ram, but less than the "swap used" number says; can be freed once there is free ram).
So if you want the exact hard number, use htop's + ~ 18mb (tinycore.gz unpacked) + ~(used ramzswap/2).
Plus any files stored in ram, such as browser settings and extensions in cloud mode.
There's a script to free all freeable caches, after which the number of free and top is correct:
sudo cache-clear
Does the option noswap affect the compressed swap in RAM?
No, it's usually desired even when the disk swap is unwanted. The embed code also disables ramzswap currently.