Стоит ли изучить С для понимания как все работает?
Память работает просто - туда можно писать и читать из нее. Еще она плоская и одномерная. Еще она виртуальная, но для прикладного программиста - это не важно, виртуальностью занимается ОС. Нужна она для того чтоб один процесс не видел что делается в другом процессе (например, в MS-DOS не было виртуальной памяти и любая программа могла запросто уронить ОС просто записав что-нибудь не нужное в память занимаемую системой), чтоб каждый процесс имел 4 Гб (для х32 приложений) адресуемой памяти не зависимо от физического наличия этой памяти.
Кроме самой памяти есть еще регистры процессора, но о них вспоминают только переходя к ассемблеру, т.к. даже Си не умеет ими манипулировать (оно и не нужно на самом деле).
Процессы и потоки - это сущности ОС предназначенные для параллельного выполнения кода. Реально выполняются потоки, а процесс - это оболочка для объединения нескольких потоков в одном адресном пространстве. В любом процессе есть хотя бы 1 поток.
Реальную параллельность можно достичь только тогда когда физических ядер процессора >1. Причем, обычно, вы никак не можете регулировать когда у вашего потока ОС отберет процессорное время, а когда снова даст. Это можно делать только выставляя уровень приоритета потока/процесса. 
Поток отличается от процесса тем, что у двух разных процессов разные адресные пространства (виртуальная память в действии) и им для общения нужно использовать какие-либо механизмы межпроцессорного взаимодействия (сокеты, pipe, shared memory, файлы, ...) предоставляемые ОС. Потоки одного процесса работают в одном адресном пространстве, поэтому для взаимодействия им ничего изобретать не нужно, т.к. они просто могут обращаться к одной и той же переменной. Но тут сразу возникает состояние "гонки" и все что с этим связано. Чтоб как-то упорядочить одновременное обращение к участкам памяти или кода нужны мьютексы и т.п. средства. Между тем, в простых случаях, можно запросто обходится и без мьютексов просто грамотно структурировав код и в правильном порядке обращаясь к "общим" участкам памяти.  Если это понимать, то писать многопоточные приложения становится не сильно сложно.
Думаю можно начать с прочтения какой-нибудь толстой книги про теорию построения ОС, например Таненбаума.
А Си - да полезно, но если вы этим денег не зарабатываете, то скорее всего не нужно.
WEB, PHP, JS, CSS и т.п. питоны, как правило, далеки от железа и ОС, на которых это все функционирует.
Имхо С - нет. Надо учить с++. Ты всё равно пройдёшь все низкоуровневые моменты, но с++ можно потом будет с удобством использовать в прикладной разработке, а с только в системном (ну почти). 
А вообще, если хочешь узнать, как всё работает, учи ассемблер. Рекомендую flat assembler