SP is locking due to Begin Transaction
You turned on IMPLICIT_TRANSACTION mode, which will start a new transaction on any statement that writes to the database.  And that transaction must be committed or rolled back explicitly, even if the transaction is started inside a stored procedure.
EG
use tempdb
go
drop table if exists t
create table t(id int)
go

create or alter procedure foo
as
begin
  insert into t(id) values (1)
end
go
SET IMPLICIT_TRANSACTIONS ON
exec foo

select @@trancount

outputs
1