Respostas:
interactive_timeé para sessões interativas, enquanto wait_timeouté para sessões não interativas.
O que é uma sessão interativa? É um com um humano no teclado.
Quando seu código se conecta ao MySQL, executa uma consulta e passa 3 segundos processando essa consulta antes de desconectar, são 3 segundos da wait_timeout.
Quando você usa o mysqlcliente de linha de comando para se conectar, execute um comando e gaste 10 segundos lendo a saída, ou seja, 10 segundos interactive_timeout. Se você for embora e almoçar, são 3600 segundos de interactive_timeout.
Nos dois casos, quando você ou seu código executa outra consulta, o tempo de espera é redefinido para 0.
Você pode ver os valores para todas as sessões atuais digitando show processlist. Os valores na sleep(5)função são o número de segundos desde a última conexão que a conexão fez.